Товарищи, добрый день, здравствуйте, привет. Выручайте, ибо в отчаянии и больше не к кому обратиться.
Собственно, тема: автоматическая нумерация строк в Налоговой накладной при нажатии "Записать".
Предыстория: Пользователь формирует Налоговую накладную, заполняет Табличную часть номенклатурой. По-умолчанию, в графе "Номер строки НН" проставлено "<Не указан>" до тех пор, пока пользователь не нажмёт "Записать". При нажатии "Записать" 1С выполняет автоматическую нумерацию строк.
Проблема: В Табличной части есть дублирующиеся строки (полностью идентичные). Например, пользователь создал Новую строку, заполнил реквизиты, затем нажимает "Добавить копированием" - и так несколько раз. При нажатии "Записать" в таком случае Автоматическая нумерация проставляет для таких строк одинаковый Номер строки НН, из-за чего они, в последствии, группируются в одну строку (в Печатной форме).
Вопрос: Как реализовать, чтобы для всех строк в Табличной части Налоговой накладной проставлялся уникальный Номер строки НН, несмотря на дублирующиеся реквизиты в некоторых строках?
ПараметрыПоиска = Новый Структура(НаборРеквизитовСвертки); Для каждого СтрокаТаблицы из ТаблицаНоменклатуры Цикл НовыйНомерСтрокиНН = ТаблицаНоменклатуры.Индекс(СтрокаТаблицы) + 1; Для каждого ЭлементСтруктуры Из ПараметрыПоиска Цикл ИмяПоляЗначения = ЭлементСтруктуры.Ключ; ПараметрыПоиска.Вставить(ЭлементСтруктуры.Ключ, СтрокаТаблицы[ИмяПоляЗначения]); КонецЦикла; МассивСтрокНомерСтрокиНН = ТаблицаНоменклатурыУстановкаНомерСтрокиНН.НайтиСтроки(ПараметрыПоиска); Если МассивСтрокНомерСтрокиНН.Количество()> 0 Тогда Для каждого НайденнаяСтрока Из МассивСтрокНомерСтрокиНН Цикл ЭтотОбъект[НайденнаяСтрока.ИмяТЧ][НайденнаяСтрока.НомерСтрокиТЧ-1].НомерСтрокиНН = НовыйНомерСтрокиНН; КонецЦикла; КонецЕсли; КонецЦикла; ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Нумерация реквизитов ""Номер строки НН"" восстановлена автоматически!'; uk = 'Нумерація реквізитів ""Номер рядка ПН"" відновлена автоматично!'")); РеквизитыНомерСтрокиННАктуальны = Истина;
КонецПроцедуры
Будьте добры, подскажите, что изменить, ибо в упор не вижу.
Auditive @ Сегодня, 13:50
, Зачем несколько строк одинаковых? одинаковый Номер строки НН для того чтобы потом можно было корректно выписать Приложение 2..Если будут одинаковые строки, но разная нумерация, тогда при преобразовании Приложений 2 (если такие будут) может возникать ошибка..
sava1 Если закомментировать Свёртку, то при автоматической нумерации оно нумерует все строки значением, равным общему количеству строк (см. скриншот).
Володька Попробовал убрать все реквизиты из набора ( НаборРеквизитовСвертки = ""; ) - вообще перестала выполнятся нумерация (см. скриншот) А придумать какой-то реквизит, по которому бы отличались эти строки в НН - таланта что-то не хватает Они ведь друг с друга полностью скопированные, без редактирования.
Auditive @ 01.03.19, 19:04
, Я не о том, что там нужно всё убрать, там нужно изменить состав, если он сворачивает по ключу НаборРеквизитовСвертки = "КодВид, КодСХ, Номенклатура, Характеристика, КодУКТВЭД, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, ЦенаБезНДСРегл, СтавкаНДС, КодЛьготы"; То может стоит поменять на НаборРеквизитовСвертки = "КодВид, Номенклатура, Характеристика, КодУКТВЭД, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, ЦенаБезНДСРегл, СтавкаНДС, КодЛьготы"; или НаборРеквизитовСвертки = "КодСХ, Номенклатура, Характеристика, КодУКТВЭД, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, ЦенаБезНДСРегл, СтавкаНДС, КодЛьготы"; или вообще НаборРеквизитовСвертки = "Номенклатура, Характеристика, КодУКТВЭД, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, ЦенаБезНДСРегл, СтавкаНДС, КодЛьготы";
Володька @ Вчера, 7:33
, спасибо за отклик, но к сожалению, всё равно безрезультатно. Пробовал разные реквизиты убирать/добавлять, но ничего не меняется. Строки идентичны абсолютно, один в один, и перед выполнением автоматической нумерации (заполнения НомерСтрокиНН) единственным различием между ними выступает номер строки табличной части (похоже на реквизит НомерСтроки по Форме, но среди реквизитов я его не вижу в дереве конфигурации). Возможно есть какой-либо "скрытый" или не визуальный реквизит, который уникален для каждой строки - если может знаете такой - то подскажите, пожалуйста.
Вопрос решился (как всегда просто и изящно) добавлением следующей строки:
НовыйНомерСтрокиНН = НовыйНомерСтрокиНН + 1;
в эту часть:
... Для каждого НайденнаяСтрока Из МассивСтрокНомерСтрокиНН Цикл ЭтотОбъект[НайденнаяСтрока.ИмяТЧ][НайденнаяСтрока.НомерСтрокиТЧ-1].НомерСтрокиНН = НовыйНомерСтрокиНН; КонецЦикла; ...
что в конечном итоге приняло вид:
... Для каждого НайденнаяСтрока Из МассивСтрокНомерСтрокиНН Цикл ЭтотОбъект[НайденнаяСтрока.ИмяТЧ][НайденнаяСтрока.НомерСтрокиТЧ-1].НомерСтрокиНН = НовыйНомерСтрокиНН; НовыйНомерСтрокиНН = НовыйНомерСтрокиНН + 1; КонецЦикла; ...
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!