Имя: Пароль:
 
1C
1С v8
Конвертация данных, подчиненный справочник в табличную часть справочника.
0 Andreyyy
 
15.07.12
07:26
Есть конфигурации УТ11 и Общепит.
В УТ11 есть справочник "Упаковки".
В Общепите в справочнике номенклатура табличная часть "ОбщепитЕдиницыИзмерения"

Ума не приложу как правило написать , с КД только начинаю.
В какую сторону копать ?
1 Rie
 
15.07.12
07:32
(0) Тебе элементы справочника Упаковки надо в табличную часть преобразовать?
Если так - то в ПКО для Номенклатура ПередВыгрузкой собираешь все её упаковки в таблицу значений - и эта таблица значений будет источником для группы ПКС для табличной части ОбщепитЕдиницыИзмерения.
2 Andreyyy
 
15.07.12
07:42
(1) Блин, наверно без прочтения мануалов нахрапом не взять, туго понимаю механизм. Пойду читать.
3 echo77
 
15.07.12
08:13
(2) Долго будешь читать, долго будешь понимать
4 Andreyyy
 
15.07.12
08:33
(3) Ну с голой пяткой на шашку тоже не полезешь.
5 Rie
 
15.07.12
08:44
(2) В (1) я неправильно написал - не ПередВыгрузкой, а ПередОбработкой.

Если о данной конкретной задаче - представь себе, что переносится не подчинённый справочник в табличную часть, а табличная часть в табличную часть. Для этого создаётся группа правил конвертации свойств. Точно так же и в твоём случае, только у тебя нет табличной части в исходном справочнике.
Но посмотри на параметры события ПередОбработкой для группы ПКС. Там есть параметр КоллекцияОбъектов. Если назначен источник (например, табличная часть) - он и будет этим параметром. В твоём случае - создаёшь сам:
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("..."); // какие там колонки тебе понадобятся.
А дальше - заполняешь КоллекцияОбъектов из подчинённого справочника.
6 Andreyyy
 
15.07.12
09:40
(5) В "ПередОбработкой" группы ПКС написал так:

КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("ЕдиницаПоКлассификатору");
КоллекцияОбъектов.Колонки.Добавить("Коэффициент");
КоллекцияОбъектов.Колонки.Добавить("Точность");

Выборка = Справочники.УпаковкиНоменклатуры.Выбрать(, Источник.Ссылка);
Пока Выборка.Следующий() Цикл
   СтрокаКоллекции = КоллекцияОбъектов.Добавить();
   СтрокаКоллекции.ЕдиницаПоКлассификатору  = Выборка.ЕдиницаИзмерения;
   СтрокаКоллекции.Коэффициент = Выборка.Коэффициент;
   СтрокаКоллекции.Точность = 3;
КонецЦикла;

По какой-то причине в табличную часть справочника загружается строка без заполненных значений.
Может еще как-то нужно укзать явно к СтрокаКоллекции.ЕдиницаПоКлассификатору правило ПКО ?
7 Rie
 
15.07.12
09:57
(6) А ПКС внутри группы - какие имеются?
8 Andreyyy
 
15.07.12
10:11
(7) Неа, тоже что-то прописать нужно ? О_о
9 Andreyyy
 
15.07.12
10:15
(7) Для каждого реквизита и галку "Получить из входящих данных" ?
10 Rie
 
15.07.12
10:16
(8) Разумеется. Каждому (нужному) реквизиту табличной части справочника-получателя должно соответствовать ПКС, которое сформирует значение этого реквизита.

(9) В данном случае - нет, поскольку не из входящих данных берутся значения, а из источника (которым выступает та самая КоллекцияОбъектов).
11 Andreyyy
 
15.07.12
10:20
(10) Разрази меня гром ! Чудо конвертация отработала как надо.
Огроменное спасибо !
12 Gobseck
 
15.07.12
10:25
Закладка
13 Skylark
 
15.07.12
10:49
Конвертация данных это чистый термояд.
Причем говорят, что официальная стратегия 1С, при всех обменах применять технологию КД.
14 Агент Инфостарта
 
15.07.12
13:14
(13) У вас мозг..., вы просто не умеете её готовить.
15 Skylark
 
15.07.12
15:32
(14) Я в положительном смысле - очень мощный инструмент, если вы не поняли.