|
Заполнение документа установки цен программно (УТ) | ☑ | ||
---|---|---|---|---|
0
Santa4527
12.09.11
✎
13:24
|
В Цикле
ТоварССылка = ЗагрузкаНоменклатурнойПозиции(); НайденнаяСтрока = НовыйДокумент.Товары.Найти(ТоварССылка,"Номенклатура"); Если найденнаяСтрока = Неопределено Тогда Строка = НовыйДокумент.Товары.Добавить(); Строка.Номенклатура = ТоварССылка; Строка.Валюта = Валюта; Строка.ЕдиницаИзмерения = ТоварССылка.ЕдиницаХраненияОстатков; Строка.ИндексСтрокиТаблицыЦен = НомерСтрокиВДокументе; НомерСтрокиВДокументе = НомерСтрокиВДокументе + 1; КонецЕсли; В документе одна строчка с последней номенклатурой. Как сделать, что бы была вся номенклатура в документе? |
|||
1
mikecool
12.09.11
✎
13:25
|
значит ТоварССылка всегда один и тот же
|
|||
2
poligraf
12.09.11
✎
13:25
|
Строка.ИндексСтрокиТаблицыЦен - вот с этим разбирайся.
Где тип цен? Он же тоже вроде участвует в табличной части? |
|||
3
Santa4527
12.09.11
✎
13:28
|
(1)Когда я получаю ТоварССылка, то он заменяется автоматически в документе.
(3) Строка.ИндексСтрокиТаблицыЦен А что с ним разбираться? |
|||
4
mikecool
12.09.11
✎
13:29
|
"Когда я получаю ТоварССылка, то он заменяется автоматически в документе. " оО
|
|||
5
Santa4527
12.09.11
✎
13:38
|
(4) Первый раз цикл проходит нормально. Второй раз он выдает, что номенклатура уже есть в документе, хотя новой строки не добавлял и по отладчику вижу что номенклатура другая.
|
|||
6
rintik
12.09.11
✎
13:44
|
Посмотри Обработку "ФормированиеЦен", там в процедуре "ПриЗакрытии" можно глянуть как добавлять строку в ТЧ документа.
|
|||
7
Santa4527
12.09.11
✎
14:22
|
(6) Что то там нечего нет, что мне может помочь
|
|||
8
Шапокляк
12.09.11
✎
14:35
|
(0)Весь цикл покажи здесь.
|
|||
9
Santa4527
12.09.11
✎
15:04
|
(8)
ТоварССылка = ЗагрузкаНоменклатурнойПозиции(Контрагент, ПоследняяГруппа, КодТовара, КодТовараГлобальный, Наименование, Объем, НормаУпаковки,ШтрихКод ); НайденнаяСтрока = НовыйДокумент.Товары.Найти(ТоварССылка,"Номенклатура"); Если найденнаяСтрока = Неопределено Тогда Н=1; Пока Н <= 5 Цикл НоменклатураДляДок = ТоварССылка; Строка = НовыйДокумент.Товары.Добавить(); Строка.Номенклатура = НоменклатураДляДок; Строка.Валюта = Валюта; Строка.ЕдиницаИзмерения = ТоварССылка.ЕдиницаХраненияОстатков; Строка.ИндексСтрокиТаблицыЦен = НомерСтрокиВДокументе; Если Н = 1 Тогда Строка.ТипЦен = ТипЦенМРЦ; Строка.Цена = ЦенаМРЦ; ИначеЕсли Н = 2 Тогда Строка.ТипЦен = ТипЦенЗак; Строка.Цена = ЦенаЗак; ИначеЕсли Н = 3 Тогда Строка.ТипЦен = ТипЦен5; Строка.Цена = Цена5; ИначеЕсли Н = 4 Тогда Строка.ТипЦен = ТипЦен4; Строка.Цена = Цена4; ИначеЕсли Н = 5 Тогда Строка.ТипЦен = ТипЦен3; Строка.Цена = Цена3; КонецЕсли; Н=Н+1; КонецЦикла; НомерСтрокиВДокументе = НомерСтрокиВДокументе + 1; Иначе Сообщить (ТоварССылка.Наименование + " уже есть в документе!!!!"); КонецЕсли; |
|||
10
shuhard
12.09.11
✎
15:07
|
(9) может быть дело в том, что у документа две ТЧ ?
если речь о УТ 11 конечно |
|||
11
Santa4527
12.09.11
✎
15:08
|
(10) у меня не 11
|
|||
12
shuhard
12.09.11
✎
15:09
|
(11) в УТ 10.3 тем более,
без записи во вторую ТЧ ни хера не будет работать в поиск по мисте было сотни раз |
|||
13
Santa4527
12.09.11
✎
15:13
|
В документе установки цен 2 ТЧ первая Типы цен. Вторая Товары. Типы цен заполнены.
После прохождения цикла в документе последняя номенклатура и только одна из 900. |
|||
14
shuhard
12.09.11
✎
15:15
|
(13) тогда покажи весь код, а не огрызок в (9)
в (9) одна товарная позиция пишется пять раз подряд с разными ценами, т.е. ошибка выше по циклу |
|||
15
Мимохожий Однако
12.09.11
✎
15:18
|
НоменклатураДляДок = ТоварССылка;
Строка = НовыйДокумент.Товары.Добавить(); Н=1; Пока Н <= 5 Цикл Строка.Номенклатура = НоменклатураДляДок; Строка.Валюта = Валюта; Строка.ЕдиницаИзмерения = ТоварССылка.ЕдиницаХраненияОстатков; Строка.ИндексСтрокиТаблицыЦен = НомерСтрокиВДокументе; Если Н = 1 Тогда Строка.ТипЦен = ТипЦенМРЦ; Строка.Цена = ЦенаМРЦ; ИначеЕсли Н = 2 Тогда Строка.ТипЦен = ТипЦенЗак; |
|||
16
Alex11
12.09.11
✎
15:18
|
В свое время писал для переноса из самописной 1с.77:
Процедура СозданиеДокаПоЦенам(ТипЦены) ДокументОбъект = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); ДокументОбъект.Дата = ТекущаяДата(); НовТипЦен = ДокументОбъект.ТипыЦен.Добавить(); НовТипЦен.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ТипЦены); КонецПроцедуры Процедура ЗанесениеЦен(ТипЦены, КолонкаВалюты, КолонкаЦены) Для каждого СтрокаТЧ Из ТЗ Цикл Номенклатура = Поиск(СтрокаТЧ[0], Справочники.Номенклатура, "Код",Неопределено); Если Номенклатура <> Ложь Тогда Если СтрокаТЧ[КолонкаВалюты] = "Доллар" Тогда Валюта = Справочники.Валюты.НайтиПоКоду("840") ИначеЕсли СтрокаТЧ[КолонкаВалюты] = "Рубль" Тогда Валюта = Справочники.Валюты.НайтиПоКоду("643") ИначеЕсли СтрокаТЧ[КолонкаВалюты] = "Евро" Тогда Валюта = Справочники.Валюты.НайтиПоКоду("978") КонецЕсли; тчТовары = ДокументОбъект["Товары"]; Объект = тчТовары.Добавить(); Объект["Номенклатура"] = Номенклатура.Ссылка; Объект["Валюта"] = Валюта; Объект["ЕдиницаИзмерения"] = Номенклатура.ЕдиницаХраненияОстатков; ТипЦены = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию(ТипЦены); Объект["ТипЦен"] = ТипЦены; Объект["Цена"] = СтрокаТЧ[КолонкаЦены]; КонецЕсли КонецЦикла; КонецПроцедуры Процедура ЗаписьДокаПоЦенам() Попытка ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение); Исключение Сообщить("НЕ ЗАПИСАН"); КонецПопытки; КонецПроцедуры |
|||
17
Alex11
12.09.11
✎
15:22
|
только ТЗ у тя будет основание.товары, ну или как там будешь ссылку делать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |