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