Как изменить оприходование товаров после их списания и настроить корректную печать ГТД

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

При работе в конфигурациях 1С:Комплексная автоматизация 2 (КА 2) или 1С:ERP пользователи часто сталкиваются с ситуацией, когда необходимо внести изменения в документ Оприходование излишков товаров, но система блокирует проведение. Основная причина — товар уже был реализован или списан последующими документами. В этой статье мы разберем, как правильно обходить подобные блокировки и почему внешние печатные формы могут некорректно отображать данные по номерам ГТД (Государственной таможенной декларации).

Проблема редактирования документов при наличии последующих списаний

Разберем ситуацию: вы обнаружили ошибку в реквизитах табличной части документа Оприходование излишков товаров. При попытке перепровести исправленный документ система выдает ошибку о недостатке товара. Это происходит из-за того, что в 1С:КА 2 реализован строгий партионный учет. Когда вы пытаетесь перепровести документ, система на мгновение «снимает» остатки этого документа, чтобы зафиксировать новые. Но так как товар уже списан реализацией, в момент перепроведения возникает «отрицательное сальдо», которое и блокирует операцию контроля остатков.

Попытка «обмануть» систему путем создания копии документа Оприходование излишков товаров часто только усугубляет ситуацию. Создав копию, вы добавляете новый остаток, но при попытке удалить эту копию система снова проверяет наличие свободных остатков. Если после создания копии были проведены другие операции, система может «зарезервировать» остатки именно за этой копией, и удалить её станет невозможно без отмены всей цепочки.

Методика исправления: правильная последовательность действий

Рассмотрим стандартный и наиболее безопасный алгоритм действий для внесения изменений в первичный документ при работающем контроле остатков:

  1. Анализ связанных документов: Сначала необходимо выяснить, какими именно документами был списан товар из данного оприходования. Это можно сделать через отчет «Движения документа» или «Места использования».
  2. Отмена проведения списаний: Распроведем (отменим проведение) все документы Реализация товаров и услуг, Списание товаров или Перемещение товаров, которые претендуют на остатки из редактируемого оприходования.
  3. Редактирование оприходования: Теперь, когда остатки «свободны», внесем необходимые изменения в реквизиты номенклатуры в ТЧ документа Оприходование излишков товаров и проведем его.
  4. Восстановление цепочки: Последовательно проведем обратно все документы списания. Если реквизиты номенклатуры изменились существенно (например, изменилась сама номенклатура), в документах списания также потребуется перевыбрать товар.

Альтернативный вариант: временное отключение контроля остатков

Если цепочка документов списания слишком велика и перепроведение займет много времени, можно воспользоваться правами администратора. Проанализируем этот путь:

В настройках склада или в дополнительных правах пользователя можно временно снять галочку «Контроль остатков при проведении». Это позволит перепровести Оприходование излишков товаров без отмены реализаций. Однако помните: после этого обязательно нужно запустить процедуру «Закрытие месяца» (или актуализацию партий), чтобы система корректно пересчитала себестоимость и восстановила партионные записи в регистрах Себестоимость товаров и Выручка и себестоимость продаж.

Почему внешняя печатная форма некорректно выводит ГТД

Часто программисты сталкиваются с тем, что типовая форма УПД печатает номера ГТД правильно (разделяя одну строку номенклатуры на несколько строк с разными ГТД), а внешняя печатная форма дублирует общее количество для каждого номера ГТД. Например, если продано 3 штуки чая (1 шт. с ГТД №1 и 2 шт. без ГТД), типовая форма выведет две строки, а внешняя может вывести две строки по 3 штуки в каждой.

Выясним причину этой ошибки. В современных конфигурациях данные для печати берутся не напрямую из табличной части документа Товары, а из результатов проведения по регистрам. Когда мы обращаемся к ЭтотОбъект.Товары, мы видим только одну строку. Но в регистре ВидыЗапасов или в результатах распределения партий эта строка уже разбита по номерам ГТД.

Как правильно получать данные для печати ГТД в коде

Для корректного формирования печатной формы (УПД или Счет-фактура) во внешней обработке нельзя использовать простое соединение табличной части документа с номерами ГТД. Рассмотрим, как это реализовано в типовом механизме:

Типовой код использует экспортные методы модуля менеджера документа. Проанализируем пример логики, которую следует внедрить во внешнюю форму:


// Вместо прямого запроса к ТЧ Товары
// Вызываем типовой механизм подготовки данных
СтруктураДанных = МенеджерДокумента.ПодготовитьДанныеДляПечатиУПД(МассивОбъектов);

// Данные уже будут содержать распределение по ГТД,
// сформированное на основе регистра "ВидыЗапасов" или временных таблиц партионного учета.

Если вы пишете собственный запрос, обратите внимание на следующие моменты:

  1. Данные о номерах ГТД в КА 2 привязаны к Видам запасов.
  2. При проведении реализации система создает записи в регистре накопления Товары организаций. Именно там хранится информация о том, какой номер ГТД был фактически списан.
  3. Во внешнем запросе необходимо соединять таблицу Документ.РеализацияТоваровУслуг.Товары с таблицей движений по регистру Товары организаций по ключу связи строк.

Рекомендации по разработке внешних форм

Чтобы избежать дублирования количества (как в примере: Чай 3шт ГТД и Чай 3шт НЕТГТД), ваш запрос должен использовать поле Количество именно из регистра списания, а не из табличной части документа. Посмотрим на логическую схему правильного запроса:

Шаг 1: Получаем данные из ТЧ документа для базовых реквизитов (наименование, цена).

Шаг 2: Соединяем с результатами распределения по ГТД (через ВидыЗапасов или напрямую через регистры накопления).

Шаг 3: Используем количество из таблицы распределения. Если распределение не найдено (например, товар не требует учета ГТД), используем ЕСТЬNULL для вывода данных из основной ТЧ.

Именно такой подход гарантирует, что количество товара будет распределено между строками с разными номерами ГТД так же, как это делает типовая печатная форма 1С.

← На главную