|
В цикле не заполняются некоторые строки табличной части. | ☑ | ||
---|---|---|---|---|
0
wsxedc83
14.08.13
✎
23:24
|
1С:Предприятие 8.2 (8.2.16.368)
Несильно дописанная "Управление торговлей", редакция 10.3 (10.3.10.4) Есть обработка, которая на основе таблицы номенклатуры программно создает документ "Установка цен номенклатуры". Проблема в том, что при заполнении документа некоторые строки табличной части "Товары" не записываются! То есть для одного товара может заполниться две цены, но не заполниться третья или, наоборот - одна заполнится, а две - нет. Или ни одна не заполнится... Короче бред какой-то. Вот код: Если (ЗначениеЗаполнено(НомерСтолбцаЦены)) И (НЕ(ТипЦенБазовый.Пустая())) Тогда сВыгрЦену=", ЦенаПоставщика"; ДокЦенообразования = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); ДокЦенообразования.Комментарий = "Заполнено автоматически из бланка заказа"; ДокЦенообразования.Ответственный = глЗначениеПеременной("глТекущийПользователь"); ДокЦенообразования.Информация = "Заполнено автоматически из бланка заказа"; ДокЦенообразования.Дата = ТекущаяДата(); НовТипЦен = ДокЦенообразования.ТипыЦен.Добавить(); НовТипЦен.ТипЦен = ТипЦенБазовый; Для Каждого СтрокаТабЧасти ИЗ Коэффициенты Цикл НовТипЦен = ДокЦенообразования.ТипыЦен.Добавить(); НовТипЦен.ТипЦен = СтрокаТабЧасти.ТипЦены КонецЦикла; ДокЦенообразования.Записать(); Иначе сВыгрЦену=""; КонецЕсли; Если ТабИмпорта.Количество()=0 Тогда Возврат; КонецЕсли; ТабНоменклатуры = Новый ТаблицаЗначений; ТабНоменклатуры = ТабИмпорта.Скопировать(,"Номенклатура"+сВыгрЦену); ТабНоменклатуры.Свернуть("Номенклатура"+сВыгрЦену); Для Каждого СтрокаТабНоменклатуры ИЗ ТабНоменклатуры Цикл Если (ЗначениеЗаполнено(НомерСтолбцаЦены)) И (НЕ(ТипЦенБазовый.Пустая())) Тогда НовСтрокаЦенообрТоваров = ДокЦенообразования.Товары.Добавить(); НовСтрокаЦенообрТоваров.ТипЦен = ТипЦенБазовый; НовСтрокаЦенообрТоваров.Номенклатура = СтрокаТабНоменклатуры.Номенклатура; НовСтрокаЦенообрТоваров.Валюта = ТипЦенБазовый.ВалютаЦены; НовСтрокаЦенообрТоваров.Цена = СтрокаТабНоменклатуры.ЦенаПоставщика; НовСтрокаЦенообрТоваров.ЕдиницаИзмерения = СтрокаТабНоменклатуры.Номенклатура.ЕдиницаХраненияОстатков; Для Каждого СтрокаТабЧасти ИЗ Коэффициенты Цикл НовСтрокаЦенообрТоваров = ДокЦенообразования.Товары.Добавить(); НовСтрокаЦенообрТоваров.ТипЦен = СтрокаТабЧасти.ТипЦены; НовСтрокаЦенообрТоваров.Номенклатура = СтрокаТабНоменклатуры.Номенклатура; НовСтрокаЦенообрТоваров.Валюта = СтрокаТабЧасти.ТипЦены.ВалютаЦены; НовСтрокаЦенообрТоваров.Цена = СтрокаТабНоменклатуры.ЦенаПоставщика * СтрокаТабЧасти.Коэффициент; НовСтрокаЦенообрТоваров.ЕдиницаИзмерения = СтрокаТабНоменклатуры.Номенклатура.ЕдиницаХраненияОстатков; КонецЦикла; КонецЕсли; КонецЦикла; Если (ЗначениеЗаполнено(НомерСтолбцаЦены)) И (НЕ(ТипЦенБазовый.Пустая())) Тогда Попытка ДокЦенообразования.Записать(); Исключение ТекстПредупр = "ru = ""Не удалось записать документ ценообразования"";" + " en = ""Can't write the price"""; Предупреждение(НСтр(ТекстПредупр) + " """ + СпрНоменклатура + """! "+ ОписаниеОшибки(),60); КонецПопытки; КонецЕсли; |
|||
1
SnarkHunter
14.08.13
✎
23:26
|
Отладчик стал не в моде ныне...
|
|||
2
GROOVY
модератор
14.08.13
✎
23:28
|
Короче бред какой-то.
|
|||
3
wsxedc83
14.08.13
✎
23:44
|
(1) Пытаюсь словить отладчиком, но в исходной таблице под 2000 строк. F10 поломается. Может по коду чего не так, не посмотрите?
|
|||
4
wsxedc83
14.08.13
✎
23:46
|
(2) Что не так? Заполнять документ "Установка цен номенклатуры" программно нельзя? Кривой код? Что не так?
|
|||
5
wsxedc83
15.08.13
✎
01:31
|
Всем спасибо! Проблему решил. Извините за беспокойство.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |