Часто пользователи 1С сталкиваются с ситуацией, когда в экранной форме документа (например, «Реализация товаров и услуг» или «Приобретение товаров и услуг») мы видим одну строку с товаром, но при выводе на печать (ТОРГ-12, УПД) эта позиция внезапно «раздваивается». При этом общее количество может совпадать, а может и пугать пользователя лишними строками. Проанализируем эту ситуацию, выясним причины и разберем по шагам, как это исправить.
Разберем основной механизм работы современных конфигураций 1С (УТ 11, КА 2, ERP). В отличие от старых версий, где печатная форма строилась напрямую по данным табличной части документа, современные системы часто формируют печатные формы на основе движений регистров накопления. Это делается для того, чтобы в накладной отражались реальные данные о списанных партиях, номерах ГТД и сериях товаров.
Рассмотрим ситуацию: в табличной части документа указано «Товар А — 10 шт.». Однако при проведении документа система обнаруживает, что на складе числится 5 шт. этого товара с одним номером ГТД и еще 5 шт. — с другим (или вообще без номера). В регистре (например, ВыручкаИСебестоимостьПродаж или ВидыЗапасов) появляются две записи. Печатная форма, обращаясь к этим регистрам, видит две разные строки и выводит их отдельно.
Как показывает практика и обсуждения специалистов, наиболее частая причина — заполненный номер ГТД в одной части партии и пустой (или другой) в другой. Даже если вы не заполняли эти данные в самом документе, система может подставить их автоматически при проведении (механизм автораспределения ГТД по FIFO).
Проанализируем ситуацию: если в печатной форме в колонке «Номер ГТД» или «Страна происхождения» данные различаются, 1С обязана вывести их разными строками согласно требованиям законодательства по заполнению счетов-фактур и УПД.
Если вы столкнулись с подобным поведением, выполним следующие действия:
Типичная ошибка в нетиповых печатных формах заключается в том, что запрос собирает данные из табличной части, но присоединяет к ним данные из регистров ЛЕВЫМ СОЕДИНЕНИЕМ. Рассмотрим пример упрощенного запроса, который может приводить к дублированию:
ВЫБРАТЬ
ТЧ.Номенклатура,
ТЧ.Количество,
ЕСТЬNULL(РегистрГТД.НомерГТД, "") КАК НомерГТД
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК ТЧ
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ВидыЗапасовПрошлыхПериодов КАК РегистрГТД
ПО
ТЧ.Ссылка = РегистрГТД.Регистратор И ТЧ.Номенклатура = РегистрГТД.Номенклатура
Если в регистре по этой накладной и этой номенклатуре окажется две записи (например, распределение по партиям), то ЛЕВОЕ СОЕДИНЕНИЕ удвоит строку из табличной части. Чтобы этого избежать, данные в запросе должны быть четко сгруппированы или выбираться из одного источника истинных данных.
Рассмотрим несколько вариантов решения в зависимости от причины:
Если разделение произошло из-за того, что часть товара списалась с ГТД, а часть без, необходимо проверить остатки. Возможно, на складе «зависли» остатки без указания номеров ГТД. Рекомендуется воспользоваться обработкой Редактирование номеров ГТД или перепровести документы поступления, чтобы выровнять аналитику.
Если организация не торгует импортным товаром и номера ГТД попали в базу случайно, можно отключить использование этого функционала. Для этого перейдем в НСИ и администрирование — Настройка НСИ и разделов — Учет номенклатуры и снимем флаг Торговля импортным товаром. Внимание: это не удалит уже созданные записи в регистрах, но предотвратит появление новых.
Если требования бизнеса допускают объединение строк (например, клиенту не важны номера ГТД в накладной), можно модифицировать запрос печатной формы. В запросе необходимо добавить группировку по Номенклатуре и суммирование по полю Количество, исключив при этом НомерГТД из списка выбираемых полей.
Проанализируем пример группировки в коде:
ВЫБРАТЬ
ДанныеДляПечати.Номенклатура КАК Номенклатура,
СУММА(ДанныеДляПечати.Количество) КАК Количество,
ДанныеДляПечати.Цена КАК Цена
ИЗ
(&ВашаТаблицаСДанными) КАК ДанныеДляПечати
СГРУППИРОВАТЬ ПО
ДанныеДляПечати.Номенклатура,
ДанныеДляПечати.Цена
Важный момент: при группировке строк не забудьте пересчитать итоги и убедиться, что цена в этих строках была одинаковой, иначе вы получите усредненные или некорректные финансовые показатели в печатной форме.
Выясним причину дублирования строк: чаще всего это следствие корректной работы системы по учету импортных товаров. 1С просто показывает вам, что фактически вы отгружаете товар из разных «корзин» (партий/ГТД). Исправление должно начинаться с анализа движений документа и только в крайнем случае переходить к правке программного кода печатных форм.