|
Конвертация данных 7.7 - 8 | ☑ | ||
---|---|---|---|---|
0
Wefast
19.06.18
✎
09:52
|
В 7 есть Номенклатура. У нее есть подчиненный справочник Штрихкоды.
В Штрихкдах есть реквизит Размер В 8 у номенклатуры есть Характеристики и Штрихкоды. Характеристика это Размер из 7 А ШК это Номенклатура + Характеристика Как мне организовать выгрузку всех сопутствующих данных из 7? Т.е. надо чтобы сначала Выгрузилась Номенклатура Потом характеристика А потом штрихкод. Как понимаю это нужно делать в ПВД в событие После выгрузки(но вот тут не очень понимаю в ПВД ли это вообще делается) Сформировать 2 набора данных. И написать ВыгрузитьПоправилу() в той последовательности что нужна мне. Но и тут не уверен работает ли это так и будет ли при загрузке штрихкода существовать номенклатура с характеристикой Есть вариант сделать 3 ПВД, для номенклатуры, характеристики и штрихкода. И перебирая галочки при выгрузки последовательно загружать. Но не уверен что не будет косяков при таком подходе. Ну и долго это |
|||
1
MaxS
19.06.18
✎
10:01
|
Если это разовая процедура, то можно воспользоваться готовым инструментом - загрузить в 8-ку из Excel.
Первое что нашлось: "Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки" ;) Тогда основная задача сведётся к созданию плоского отчета в 7-ке, где будут все данные. Если данных много, сохраняем в mxl и отдаём обработке в 8-ку. |
|||
2
azt-yur
19.06.18
✎
10:08
|
3 правила самый простой и быстрый вариант. Выгружать можешь только Штрихкоды, номенклатура и характеристика перенесутся по ссылкам
|
|||
3
Wefast
19.06.18
✎
13:37
|
Так. В ПВД Номенклатура в событие ПослеВыгрузки написал:
ШК = СоздатьОбъект("Справочник.ШтрихКод"); ШК.ИспользоватьВладельца(Объект); ШК.ВыбратьЭлементы(); Пока ШК.ПолучитьЭлемент()=1 Цикл ВходящиеДанные1 = СоздатьОбъект("СписокЗначений"); ВходящиеДанные1.Установить("Характеристика", ШК.ТекущийЭлемент().Размер); ВходящиеДанные1.Установить("Владелец", Объект.ТекущийЭлемент()); ВходящиеДанные1.Установить("Штрихкод", ШК.ТекущийЭлемент().Наименование); ВыгрузитьПоПравилу(,, ВходящиеДанные1, , "Штрихкоды",); КонецЦикла; В ПКО Штрихкоды событии ПередВыгрузкой написал: ИсходящиеДанные = ВходящиеДанные; (1) В ПКС Характеристика события ПослеВыгрузки написал: В этом ПКС указано правило где создается характеристика Для Инд = 1 По ИсходящиеДанные.РазмерСписка() Цикл Сообщить("ИсходящиеДанные[" + Инд + "] = " + ИсходящиеДанные.ПолучитьЗначение(Инд)); КонецЦикла; // Если не перебираю, то почему то по индексу ничего получить не могу. (2) qwe = ИсходящиеДанные.ПолучитьЗначение(1); asd = ИсходящиеДанные.ПолучитьЗначение(2); Сообщить(qwe); Сообщить(asd); ВходящиеДанные = СОздатьОбъект("СписокЗначений"); ВходящиеДанные.Установить("Владелец",asd); ВходящиеДанные.Установить("Наименование",Строка(qwe)); В ПКО ХарактерестикаНом в событии ПередВыгрузкой пишу: Для Инд = 1 По ВходящиеДанные.РазмерСписка() Цикл Сообщить("ВходящиеДанные[" + Инд + "] = " + ВходящиеДанные.ПолучитьЗначение(Инд)); КонецЦикла; // Он выдает мне оба переданных значения Но Если я пишу Сообщить(ВходящиеДанные.Наименование) то он выдает ошибку (3) Можете поправить меня? в (1) я не понимаю зачем такое вообще писать. Но если не писать, то ни во входящих, ни в исходящих ничего нет. В описание события написано: ИсходящиеДанные - Произвольный - произвольные вспомогательные данные. Данные передаются по следующим правилам: 1. ПВД.ИсходящиеДанные -> ПКО.ВходящиеДанные 2. ПКО.ВходящиеДанные -> ПКС.ВходящиеДанные 3. ПКС.ИсходящиеДанные -> ПКО.ВходящиеДанные И я не понимаю как это работает и что это значит. В ПКО у меня есть ВходящиеДанные которые я получить из ПВД другого правила. Почему мне пришлось писать эту тарабарщину если ИсходящиеДанные по написанному выше и делать не надо. Да и не уверен что так можно скопировать Список значений, там же копировать надо вроде, метод есть. Абсолютно не понимаю эту проклятую схему со стрелками. в (2) вообще не понимаю какого черта происходит. Никак иначе примудрости семерки где нужно написать ТекущийЭлемент() чтобы получить что то, и тут что то вроде. в (3) видимо Наименование нельзя использовать в списке значений и он наверное меняет на какое то другое слово. Но что тогда делать? |
|||
4
hhhh
19.06.18
✎
13:42
|
(3) ну у вас самый простейший случай из всех возможных. Конечно Исходящие и вхождящие данные вряд ли понадобятся.
Может просто проостановкой галочек в конвертации ограничитесь. |
|||
5
Wefast
19.06.18
✎
13:50
|
(4) я не понял о чем вы.
Как это без входящих\исходящих данных все это я могу сделать? Я выгружаю номенклатуру. В ПВД получаю все штрихкоды с размерами(размер это характеристика в 8). В цикле вызываю правило ШТрихкоды передавая туда Владельца - Номенклатуру Штрихкод и Размер В правиле Штрихкодов мне нужно создать Характеристику. Для этого не достаточно передать в нее только Имя этой характеристики же. Поэтому я создаю Список значенийй с владельцем(Номенклатура) и Размером(Характеристикой в 8) В правиле Характеристики Владелец заполняется. А Имя - нет |
|||
6
Wefast
19.06.18
✎
13:53
|
Или то что я создал в ПКС Характеристика ВходящиеДанные не работает. и владелец как то сам определился? Но как? Перехожу же я из правила Штрихкоды, т.е. откуда взяться владельцу с типом Номенклатура
Но видимо так и есть, потому что в ПКС Наименование ПКО Характеристика я пишу Значение = Строка(Источник) и все ок |
|||
7
hhhh
19.06.18
✎
13:56
|
(5) зачем такая фигня? в цикле.
просто пишешь три пко: штрихкод -> штрихкод штрихкод -> характеристика номенклатура -> номенклатура пвд исходя из этого полностью автоматические, там вообще только ентер нажимаешь создать и всё трудность наверно с ПКС - привязать реквизиты |
|||
8
Wefast
19.06.18
✎
13:59
|
(7) Ну так не у всей же номенклатуры есть штрихкоды.
Я выгружаю номенклатуру и сопутсвующую информацию |
|||
9
hhhh
19.06.18
✎
14:04
|
(8) ну, правильно. И выгружай. Только не надо задумываться - это вредно. Там всё на автомате. Уже всё продумано до нас.
|
|||
10
Wefast
19.06.18
✎
14:07
|
(9) Что значит не задумываться?
Вот есть Номенклатура. Я ее выгружаю. Что мне нужно сделать чтобы выгрузить из 7 характеристику которая состоит из шк и размера в 8 так что бы размер стал характеристикой а ШК стал ШК с указанием характеристики? Можно было бы выгрузить отдельно Номенклатуру. ПОтом выгрузить Характеристики А потом уже выгрузить ШК Но хочется сделать нормально и разобраться уже немножко |
|||
11
hhhh
19.06.18
✎
14:14
|
(10) ну вот этот вопрос "не уверен работает ли это так и будет ли при загрузке штрихкода существовать номенклатура" эти вопросы решены уже 15 лет назад. Будет там существовать номенклатура.
|
|||
12
hhhh
19.06.18
✎
14:17
|
(10) ну то есть ваша основная задача, чтобы в списке правил четко сверху вниз располагались правила: Номенклатура, Характеристика, ШтрихКод. Это надо просто усилие воли. Тут задумываться не надо.
|
|||
13
Wefast
19.06.18
✎
14:28
|
(12) ну если это работает - круто. Буду знать.
Но я уже все сделал, я только не понимаю пару моментов по возможностям КД и особенностям работы в 7.7 1. Это подмена входящихданных правилу. Не понятно как это работает. Будет работать: В пвд я создаю ИсходящиеДанные и они доступны в ПКО как входящие. В пко создаю ИсходящиеДанные и они доступны в ПКС как входящие. В ПКС создаю исходящиеДанные и они доступны в ПКО как входящие. так? Потому что то что написано в описание не очевидно для меня. 2. Почему мне пришлось узнать сначала размер списка значений чтобы потом можно было обратится по индексу к элементам? 3. Почему я не смог обратится СписокЗначение.наименование и как это обходить? 4. Ну и почему в ПКО Характеристика вызванного из ПКС ПКО Штрихкод Источником являлась номенклатура. |
|||
14
Wefast
22.06.18
✎
11:49
|
> 3. Почему я не смог обратится СписокЗначение.наименование и как это обходить?
Правила видимо сами все делают, а самому обращаться надо СписокЗначений.Получить("Наименование") Но я так и не понял как работают Исходящие данные. Так как пишу в пкс например ИсходящиеДанные. Заполня их А в пко это уже какой нибудь Источник а не входящие данные. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |