|
Не заполняется табличная часть документа "Установка цен номенклатуры". | ☑ | ||
---|---|---|---|---|
0
Eeelena
09.11.15
✎
07:34
|
Здравствуйте!
Создаю обработку заполнения ТЧ документа "Установка цен номенклатуры", добавляю записи в ТЧ Товары, но ТЧ в документе не заполняется. Пробовала заполнить Таблицу значений ТаблицаЦен, но там нет колонки цена. Подскажите, пожалуйста, как правильно нужно заполнить ТЧ? |
|||
1
Любопытная
09.11.15
✎
07:36
|
Посмотреть как она заполняется при добавлении номенклатуры в ТЧ.
Конфигурация какая? |
|||
2
Eeelena
09.11.15
✎
07:38
|
(1) УТ 10.3
|
|||
3
Любопытная
09.11.15
✎
07:39
|
А, ну там все просто - сначала надо заполнить таблицу цен видами цен. Потом для каждой пары номенклатура - вид цен в ТЧТовары добавляется строка с ценой на номенклатуру.
|
|||
4
ASV
09.11.15
✎
07:40
|
в ТаблицаЦен должен быть список используемых типов цен
|
|||
5
Eeelena
09.11.15
✎
07:41
|
(3) (4) не могли бы вы привести пример, пожалуйста, как правильно, просто я и ТЧ Товары заполняла и Таблицу цен, все равно не заполняется
|
|||
6
kn
09.11.15
✎
07:42
|
ТЧ Товары и ТаблицаЦен - взаимосвязанные таблицы, в Товарах указывается ИндексСтрокиТаблицыЦен
|
|||
7
mehfk
09.11.15
✎
07:49
|
(0) Все там заполняется. Нужно скопипастить во внешнюю обработку код, который выполняется в ПриОткрытии (или ПередОткрытием, не помню). Потому как на форме - ТЗ и нужно перезаполнять именно ее.
|
|||
8
Eeelena
09.11.15
✎
08:01
|
(7) сделала вот так
мСоответствиеТиповЦен = Новый Соответствие; // Сформируем и заполним таблицу цен. Для Каждого СтрокаТипаЦен Из Объект.ТипыЦен Цикл НомерСоответствияТекущейКолонки = Объект.ТипыЦен.Индекс(СтрокаТипаЦен); мСоответствиеТиповЦен.Вставить(СтрокаТипаЦен.ТипЦен, НомерСоответствияТекущейКолонки); Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("цена" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("цена" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2, ДопустимыйЗнак.Неотрицательный), СокрЛП(СтрокаТипаЦен.ТипЦен), 10); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("СпособРасчета" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("СпособРасчета"+НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("ПеречислениеСсылка.СпособыРасчетаЦены"), "Способ расчета", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("валюта" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("валюта" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.Валюты"), "Валюта", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("единица" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("единица" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"), "Единица", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("процент" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("процент" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2), "% скидки (наценки)", 8); КонецЕсли; КонецЦикла; А потом заполняю ТЧ товары, при заполнении выходит ошибка {Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента.Форма(1620)}: Поле объекта не обнаружено (единица0) ЯчейкаЕдиницы.ОтметкаНезаполненного = ЭтоНеУслуга |
|||
9
mehfk
09.11.15
✎
08:09
|
||||
10
Eeelena
09.11.15
✎
08:18
|
(9) спасибо, огромное))) я как раз только разобралась, в итоге сделала так
ФормаДокумента=Объект.ПолучитьФорму("ФормаДокумента"); ФормаДокумента.ТаблицаЦен.Очистить(); Для Каждого ТипЦен Из Объект.ТипыЦен Цикл ТипЦенДокумента=ТипЦен.ТипЦен; Сообщить(ТипЦенДокумента); КонецЦикла; мСоответствиеТиповЦен = Новый Соответствие; // Сформируем и заполним таблицу цен. Для Каждого СтрокаТипаЦен Из Объект.ТипыЦен Цикл НомерСоответствияТекущейКолонки = Объект.ТипыЦен.Индекс(СтрокаТипаЦен); мСоответствиеТиповЦен.Вставить(СтрокаТипаЦен.ТипЦен, НомерСоответствияТекущейКолонки); Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("цена" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("цена" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2, ДопустимыйЗнак.Неотрицательный), СокрЛП(СтрокаТипаЦен.ТипЦен), 10); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("СпособРасчета" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("СпособРасчета"+НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("ПеречислениеСсылка.СпособыРасчетаЦены"), "Способ расчета", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("валюта" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("валюта" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.Валюты"), "Валюта", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("единица" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("единица" + НомерСоответствияТекущейКолонки, Новый ОписаниеТипов("СправочникСсылка.ЕдиницыИзмерения"), "Единица", 8); КонецЕсли; Если ФормаДокумента.ТаблицаЦен.Колонки.Найти("процент" + НомерСоответствияТекущейКолонки) = Неопределено Тогда ФормаДокумента.ТаблицаЦен.Колонки.Добавить("процент" + НомерСоответствияТекущейКолонки, ОбщегоНазначения.ПолучитьОписаниеТиповЧисла(15, 2), "% скидки (наценки)", 8); КонецЕсли; КонецЦикла; Объект.Товары.Очистить(); Сообщить(Объект); Для row = 1 По ВсегоСтрок Цикл ЗначениеАртикул=Excel.Cells(row,Артикул).Value; ЗначениеЦена=Excel.Cells(row,Цена).Value; Сообщить(ЗначениеАртикул); Сообщить(ЗначениеЦена); СтрокаТЧ=Объект.Товары.Добавить(); СтрокаТЧ.ТипЦен=ТипЦенДокумента; СтрокаТЧ.Номенклатура=Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Строка(ЗначениеАртикул)); СтрокаТЧ.Цена=ЗначениеЦена; СтрокаТЧ.Валюта=Справочники.Валюты.НайтиПоКоду("643"); СтрокаТЧ.ЕдиницаИзмерения=СтрокаТЧ.Номенклатура.ЕдиницаХраненияОстатков; КонецЦикла; ТаблицаТоваров = Объект.Товары.Выгрузить(); ТаблицаТоваров.Сортировать("ИндексСтрокиТаблицыЦен, Номенклатура, ХарактеристикаНоменклатуры"); ТекущийИндексСтрокиТаблицыЦен = Неопределено; НоваяСтрока = Неопределено; Для Каждого СтрокаТаблицыТоваров Из ТаблицаТоваров Цикл Если ТекущийИндексСтрокиТаблицыЦен <> СтрокаТаблицыТоваров.ИндексСтрокиТаблицыЦен Или НоваяСтрока.Номенклатура <> СтрокаТаблицыТоваров.Номенклатура Или НоваяСтрока.ХарактеристикаНоменклатуры <> СтрокаТаблицыТоваров.ХарактеристикаНоменклатуры Тогда НоваяСтрока = ФормаДокумента.ТаблицаЦен.Добавить(); НоваяСтрока.Номенклатура = СтрокаТаблицыТоваров.Номенклатура; НоваяСтрока.ХарактеристикаНоменклатуры = СтрокаТаблицыТоваров.ХарактеристикаНоменклатуры; ТекущийИндексСтрокиТаблицыЦен = СтрокаТаблицыТоваров.ИндексСтрокиТаблицыЦен; КонецЕсли; НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[СтрокаТаблицыТоваров.ТипЦен]; НоваяСтрока["цена" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.Цена; НоваяСтрока["СпособРасчета" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.СпособРасчетаЦены; НоваяСтрока["валюта" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.Валюта; НоваяСтрока["единица" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.ЕдиницаИзмерения; НоваяСтрока["процент" + НомерСоответствияТекущейКолонки] = СтрокаТаблицыТоваров.ПроцентСкидкиНаценки; КонецЦикла; теперь все заполняется))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |