При переносе данных или программном создании документов ВводНачальныхОстатков в конфигурации 1С:Бухгалтерия предприятия 3.0 разработчики часто сталкиваются со специфическим поведением: созданный документ успешно записан, проведен и отображается в общем списке через меню «Все функции» («Функции для технического специалиста»), однако в стандартной форме списка или в обработке «Помощник ввода начальных остатков» он отсутствует.
Проанализируем детально, из-за чего возникает эта ситуация и какие параметры необходимо проверить при программном формировании документов.
Основная и наиболее частая причина — расхождение между датой самого документа и установленной датой ввода остатков в системе. В обработке «Помощник ввода начальных остатков» и специализированных списках действует жесткий отбор по дате ввода остатков для выбранной организации.
Как правило, остатки вводятся на конец года, предшествующего началу ведения учета (например, 31.12.2023 23:59:59). Если при программном создании указать дату на начало следующего года (01.01.2024 00:00:00) или допустить ошибку в секундах, динамический список с предустановленными параметрами скроет такой документ, хотя в общем списке через «Все функции» без отборов он будет виден.
Разберем правильное заполнение даты при создании документа в коде:
ДокументОбъект = Документы.ВводНачальныхОстатков.СоздатьДокумент();
ДокументОбъект.Дата = КонецДня(ДатаВводаОстатков); // Например, 31.12.2023 23:59:59
ДокументОбъект.Организация = ВыбраннаяОрганизация;
ДокументОбъект.РазделУчета = Перечисления.РазделыУчетаДляВводаОстатков.ОсновныеСредства;
Список документов в помощнике ввода остатков и специализированных формах привязан к конкретным разделам учета и счетам плана счетов Хозрасчетный. Если реквизит шапки РазделУчета не заполнен, заполнен неверно либо счета в табличной части не соответствуют выбранному значению перечисления РазделыУчетаДляВводаОстатков, документ не попадет в отбор динамического списка.
Проверим соответствие перечисления раздела учета и состава табличной части документа. Например, для раздела учета материалов должны использоваться соответствующие субсчета счета 10, а также заполняться специализированная табличная часть, предусмотренная конфигурацией для данного раздела.
При программном создании нового документа без вызова стандартной процедуры ОбработкаЗаполнения() булевы реквизиты видимости и учета могут остаться со значением Ложь:
ОтражатьВБухгалтерскомУчете;ОтражатьВНалоговомУчете;ОтражатьВУСН (в зависимости от применяемой системы налогообложения).Если эти реквизиты не установлены в Истина, стандартные формы списков с наложенными отборами по видам учета не выведут созданный документ. Рекомендуется явно вызывать процедуру заполнения либо устанавливать эти флаги вручную перед записью объекта:
ДокументОбъект.Заполнить(Неопределено);
ДокументОбъект.ОтражатьВБухгалтерскомУчете = Истина;
ДокументОбъект.ОтражатьВНалоговомУчете = Истина;
Если загрузка выполняется с установленным флагом ОбменДанными.Загрузка = Истина, в объекте отключаются стандартные обработчики событий (ПередЗаписью, ПриЗаписи, ОбработкаПроведения). В типовых конфигурациях при записи документа ввода остатков выполняются служебные расчеты и заполнение дополнительных вспомогательных реквизитов.
При необходимости загрузки через режим обмена убедимся, что все реквизиты шапки и табличных частей заполнены исчерпывающе, а проведение документа выполняется после отключения флага загрузки:
ДокументОбъект.ОбменДанными.Загрузка = Ложь;
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Если все реквизиты в документе заполнены корректно, но форма списка по-прежнему пуста, проанализируем параметры динамического списка и пользовательские настройки:
ДатаНачала, ДатаОкончания, Организация, РазделУчета).