Как программно или массово установить отметку «Выставлен» и дату выставления в счете-фактуре выданном для 1С:КА 2.5 и ERP 2.5

Программист 1С v8.3 (Управляемые формы) Налоговый учет
← На главную

При переходе с устаревших редакций программ (например, с 1С:Комплексная автоматизация 2.4 на 2.5 или с ERP 2.4 на 2.5) пользователи часто сталкиваются с ситуацией, когда в документах СчетФактураВыданный пропадают галочки в поле «Выставлен» и очищаются соответствующие даты. Это может стать серьезной проблемой при подготовке отчетности по НДС и ведении журнала учета счетов-фактур. В этой статье мы разберем, почему стандартные методы не всегда срабатывают и как корректно решить задачу программно или с помощью типовых инструментов.

Выясним причину ошибки: почему не находится поле «Выставлен»?

Многие начинающие разработчики пытаются обратиться к полю Выставлен напрямую через объект документа, используя код вроде ДокОбъект.Выставлен = Истина;. Однако при выполнении такого кода система выдает ошибку: «Поле объекта не обнаружено "Выставлен"». Проанализируем ситуацию подробнее.

Дело в том, что в современных конфигурациях на платформе 1С:Предприятие 8.3 (таких как КА 2.5, ERP 2.5, УТ 11.5) реквизита Выставлен в самой таблице базы данных для документа Счет-фактура выданный не существует. Это так называемый реквизит формы. Логика программы работает следующим образом:

  1. На форме документа есть визуальный элемент (флажок), который связан с программной переменной.
  2. Состояние этого флажка вычисляется динамически: если реквизит объекта ДатаВыставления заполнен (не равен пустой дате), то галочка «Выставлен» отображается как установленная.
  3. Таким образом, чтобы «поставить галочку», нам нужно не искать поле Выставлен, а записать корректное значение в поле ДатаВыставления.

Способ 1: Программное заполнение даты выставления

Рассмотрим, как написать обработку для массового заполнения этих данных. Мы будем использовать дату самого документа в качестве даты выставления, так как при миграции данных это наиболее логичный вариант. Разберем правильный алгоритм работы с объектом.

Посмотрим на пример кода, который учитывает проверку на заполненность, чтобы не перезаписывать документы, в которых дата уже установлена:


Выборка = Документы.СчетФактураВыданный.Выбрать();

Пока Выборка.Следующий() Цикл
    // Проверяем, заполнена ли дата выставления. 
    // Если дата пустая — значит флаг "Выставлен" на форме будет снят.
    Если Не ЗначениеЗаполнено(Выборка.ДатаВыставления) Тогда
        
        Попытка
            ДокОбъект = Выборка.ПолучитьОбъект();
            
            // Устанавливаем дату выставления равной дате самого счета-фактуры
            ДокОбъект.ДатаВыставления = ДокОбъект.Date; 
            
            // Используем режим записи "Запись", чтобы не инициировать 
            // полные проверки проведения, если это не требуется.
            ДокОбъект.Записать(РежимЗаписиДокумента.Запись);
            
            Сообщить("Обработан документ: " + Выборка.Ссылка);
        Исключение
            Сообщить("Ошибка при записи документа " + Выборка.Ссылка + ": " + ОписаниеОшибки());
        КонецПопытки;
        
    КонецЕсли;
КонецЦикла;

Важный нюанс: Обратите внимание на использование метода ЗначениеЗаполнено(). В 1С пустая дата не равна Null, она имеет специфическое значение '00010101'. Если мы просто запишем ДатаВыставления = ТекущаяДата(), как советовали в некоторых сообщениях форума, это может исказить отчетность за прошлые периоды. Правильнее брать Дата (дата самого документа).

Способ 2: Использование «Группового изменения реквизитов»

Если у вас нет опыта программирования, задачу можно решить штатным инструментом 1С, который доступен администратору. Однако здесь есть «подводный камень»: поле ДатаВыставления часто является скрытым для этой обработки.

Разберем по шагам, как настроить групповую обработку:

  1. Перейдите в раздел НСИ и администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  2. В поле «Изменять» выберите Счет-фактура выданный.
  3. Нажмите кнопку «Дополнительные параметры». В открывшемся окне обязательно установите галочку «Показывать служебные реквизиты». Без этого шага нужное поле не появится в списке.
  4. В списке реквизитов найдите «Дата выст.» (внутреннее имя ДатаВыставления).
  5. В колонке «Новое значение» выберите вариант установки даты. Если нужно проставить одну дату на все документы, введите её. Если нужно заполнить индивидуально (датой документа), лучше воспользоваться программным методом из Способа 1.
  6. Нажмите «Изменить реквизиты».

Влияние на Журнал учета счетов-фактур и ЭДО

Проанализируем, почему заполнение этого поля критически важно. Согласно Постановлению №1137, дата выставления счета-фактуры фиксируется в «Журнале учета полученных и выставленных счетов-фактур». Особенно это актуально для организаций, работающих по договорам комиссии или агентским схемам.

Связь с ЭДО (Электронным документооборотом):
Если вы используете встроенный сервис 1С-ЭДО, поле ДатаВыставления заполняется автоматически в момент получения подтверждения от оператора ЭДО. Внимание: ручное или программное изменение этой даты в документах, которые уже отправлены через ЭДО, крайне не рекомендуется. Это может привести к расхождениям между данными в вашей базе и данными в транспортном контейнере оператора, что вызовет вопросы у налоговой инспекции при проверке декларации по НДС.

Проверка реквизита «Перевыставлен»

В процессе обсуждения на форумах часто упоминается реквизит Перевыставлен. Рассмотрим, можно ли его использовать. Ответ — нет, если речь идет об обычной реализации. Реквизит Перевыставлен (Булево) используется исключительно в схемах комиссионной торговли, когда комиссионер перевыставляет счет-фактуру от имени комитента. Установка этого флага в обычных документах приведет к некорректному формированию движений по регистрам НДС.

Резюме для разработчика

Подведем итоги нашего исследования:

Используя приведенный выше программный код или настроенную групповую обработку, вы сможете быстро восстановить работоспособность системы после миграции с версии 2.4 и обеспечить корректное отображение данных для бухгалтерии.

← На главную