Универсальные процедуры и функции » История » Версия 14
« Предыдущее -
Версия 14/38
(Разница(diff)) -
Следующее » -
Текущая версия
Всеволод Дорофеев, 21.02.2017 15:40
Универсальные процедуры и функции¶
Проверка битых ссылок¶
ЭтоБитаяСсылка = не ЗначениеЗаполнено(Ссылка.ВерсияДанных);
Возвращает полное имя объекта метаданных по переданному значению ссылки¶
// Возвращает полное имя объекта метаданных по переданному значению ссылки // Например, // "Справочник.Номенклатура"; // "Документ.ПриходнаяНакладная" // // Параметры: // Ссылка - ЛюбаяСсылка - значение ссылки, для которого необходимо получить имя таблицы ИБ // // Возвращаемое значение: // Строка - полное имя объекта метаданных для указанного значения ссылки // Функция ИмяТаблицыПоСсылке(Ссылка) Экспорт Возврат Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).ПолноеИмя(); КонецФункции
МенеджерИсторииРаботыПользователя¶
// Добавить событие в историю работы пользователя ИсторияРаботыПользователя.Добавить(ПолучитьНавигационнуюСсылку(Объект.Ссылка));
ОтображениеСостояния¶
Очистка окна сообщений¶
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
ОчиститьСообщения();
Отбор в таблице значений (табличной части) с помощью построителя запроса¶
&НаСервере Функция ПолучитьКоличествоПодобраноПоСтрокеНаСервере(ИсходнаяНоменклатура) ПостроительЗапр = Новый ПостроительЗапроса; ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(Объект.НоваяНоменклатура.Выгрузить()); Отбор = ПостроительЗапр.Отбор.Добавить("ИсходнаяНоменклатура"); Отбор.ВидСравнения = ВидСравнения.Равно; Отбор.Значение = ИсходнаяНоменклатура; Отбор.Использование = Истина; ПостроительЗапр.Выполнить(); ПостроительЗапр.Результат.Выгрузить().Итог("Количество"); КонецФункции
Запись справочника¶
Функция ЗаписатьСправочник(ТекущийОбъект,Заголовок="",РежимСообщений="Все",РежимЗагрузки=Ложь) Экспорт ДействиеВыполнено = Ложь; ВыводитьОшибки = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь); ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь); Попытка Если РежимЗагрузки Тогда ТекущийОбъект.ОбменДанными.Загрузка = Истина; КонецЕсли; ТекущийОбъект.Записать(); ДействиеВыполнено = Истина; Если ВыводитьИнформацию Тогда ТекстСообщения = "Записан справочник """+ТекущийОбъект.Ссылка+""". "; СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация); КонецЕсли; Исключение ДействиеВыполнено = Ложь; Если ВыводитьОшибки Тогда ТекстСообщения = "Не удалось записать справочник """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки(); СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное); КонецЕсли; КонецПопытки; Возврат ДействиеВыполнено; КонецФункции //ЗаписатьПровестиДокумент()
Запись и проведение документа¶
// Процедура выполняет запись/проведение/отмену проведения документа. // // Параметры: // ТекущийОбъект – ДокументОбъект,СправочникОбъект. // РежимЗаписи - РежимЗаписиДокумента. // Заголовок - Строка. // РежимСообщений - Строка: "Нет","Все","Ошибки". // // Возвращаемое значение: // ДействиеВыполнено – Булево. // Функция ЗаписатьПровестиДокумент(ТекущийОбъект,РежимЗаписи,Заголовок="",РежимСообщений="Все") Экспорт ДействиеВыполнено = Ложь; ВыводитьОшибки = ?(РежимСообщений="Все" ИЛИ РежимСообщений="Ошибки",Истина,Ложь); ВыводитьИнформацию = ?(РежимСообщений="Все",Истина,Ложь); Если РежимЗаписи = РежимЗаписиДокумента.Запись ИЛИ РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда Попытка ТекущийОбъект.Записать(РежимЗаписиДокумента.Запись); ДействиеВыполнено = Истина; Если ВыводитьИнформацию Тогда ТекстСообщения = "Записан документ """+ТекущийОбъект.Ссылка+""". "; СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация); КонецЕсли; Исключение ДействиеВыполнено = Ложь; Если ВыводитьОшибки Тогда ТекстСообщения = "Не удалось записать документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки(); СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное); КонецЕсли; КонецПопытки; КонецЕсли; Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда Попытка ТекущийОбъект.Записать(РежимЗаписиДокумента.Проведение); ДействиеВыполнено = Истина; Если ВыводитьИнформацию Тогда ТекстСообщения = "Проведен документ """+ТекущийОбъект.Ссылка+""". "; СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация); КонецЕсли; Исключение ДействиеВыполнено = Ложь; Если ВыводитьОшибки Тогда ТекстСообщения = "Не удалось провести документ """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки(); СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное); КонецЕсли; КонецПопытки; КонецЕсли; Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда Попытка ТекущийОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); ДействиеВыполнено = Истина; Если ВыводитьИнформацию Тогда ТекстСообщения = "Отменено проведение документа """+ТекущийОбъект.Ссылка+""". "; СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Информация); КонецЕсли; Исключение ДействиеВыполнено = Ложь; Если ВыводитьОшибки Тогда ТекстСообщения = "Не удалось отменить проведение документа """+ТекущийОбъект.Ссылка+""". "+ОписаниеОшибки(); СообщитьОбОшибке(ТекстСообщения,,Заголовок,СтатусСообщения.Важное); КонецЕсли; КонецПопытки; КонецЕсли; Возврат ДействиеВыполнено; КонецФункции // ЗаписатьПровестиДокумент()
Проверка на пустую дату¶
Пустая дата
Дата("00010101"); Дата(1, 1, 1); Дата("00010101000000"); Дата("0001-01-01");
Создание структуры со свойствами, как колонки таблицы, переданной строки¶
// Функция СтрокаТаблицыЗначенийВСтруктуру создает // структуру со свойствами, как колонки таблицы // значений передаваемой строки // и устанавливает этим свойствам значения // из строки таблицы значений. // // Параметры: // СтрокаТаблицыЗначений - СтрокаТаблицыЗначений. // // ВозвращаемоеЗначение: // Структура // Функция СтрокаТаблицыЗначенийВСтруктуру(СтрокаТаблицыЗначений) Экспорт Структура = Новый Структура; Для каждого Колонка Из СтрокаТаблицыЗначений.Владелец().Колонки Цикл Структура.Вставить(Колонка.Имя, СтрокаТаблицыЗначений[Колонка.Имя]); КонецЦикла; Возврат Структура; КонецФункции