|
Конвертация данных из строки в табличную часть. | ☑ | ||
---|---|---|---|---|
0
ТутЯ
18.12.12
✎
10:17
|
Подскажите, пожалуйста, как выполнить такой перенос данных.
В 1с7.7 есть справочник "Контрагенты" с реквизитами "Адрес", "ЮрАдрес", "Телефон". В 1с8.2 есть справочник "Контрагенты" с табличной частью "Контактная информация", где реквизиты "Тип"(Перечисление), "Вид"(Справочник с предопределенными элементами), "Представление". На форуме нашла v8: Конвертация данных, подчиненный справочник в табличную часть справочника. Написала для примера КПС Источник - получить значение из входящих данных Приемник - КонтактнаяИнформация В "ПередВыгрузкой" код: КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Тип"); КоллекцияОбъектов.НоваяКолонка("Представление"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Тип = "Адрес"; КоллекцияОбъектов.Представление = Источник.Адрес; КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Тип = "ЮрАдрес"; КоллекцияОбъектов.Представление = Источник.ЮрАдрес; Вопросы: 1) как нарисовать тип и вид, если мы выгружаем из 7.7? 2) как обработать полученную ТЗ? 3) или это делается не так? |
|||
1
floody
18.12.12
✎
10:23
|
а фото то где
|
|||
2
lEvGl
гуру
18.12.12
✎
10:27
|
(1) Achtung!!!
|
|||
3
Alex S D
18.12.12
✎
10:28
|
(1)+1
|
|||
4
Lokli
18.12.12
✎
10:29
|
Хм... Вообще-то в 8.2 обычно используется не табличная часть, а регистр сведений. Ну да ладно, пока это не важно.
В указанной вами тебе есть очень хороший пост №2. Цитирую: "Блин, наверно без прочтения мануалов нахрапом не взять, туго понимаю механизм. Пойду читать." (2), (3)Сами вы ахтунг. :))) Пишет, то "нашла", "написала". |
|||
5
Alex S D
18.12.12
✎
10:30
|
(4) сам ты ахтунг, я тут причем)
|
|||
6
Alex S D
18.12.12
✎
10:31
|
(4) ты плохо знаешь например ут 11 - там КИ в таб. части
|
|||
7
floody
18.12.12
✎
10:31
|
народ похоже вообще темы не читает, тупо смотрит сразу пол, если "м", переходят к следующей)
|
|||
8
Rlogin
18.12.12
✎
10:32
|
(4) Топикстартер палится "Нашла.." "Написала .."
|
|||
9
ТутЯ
18.12.12
✎
10:53
|
(4) А сами читали? Туго и плохо знаю, поэтому и спрашиваю!
(8) пол женский, фото показывала |
|||
10
ТутЯ
18.12.12
✎
10:54
|
Спросить быстрее чем прочитать...
|
|||
11
Lokli
18.12.12
✎
11:14
|
Я бы сделал так:
У ПКО Номенклатуры создал бы группу свойств аналогичную ТЧ приёмника. А в обработчике события "ГруппаСвойств.Перед обработкой" заполнял бы предопределённую переменную "Входящие данные". |
|||
12
ТутЯ
18.12.12
✎
11:20
|
Спасибо. Ответ найден и вопрос закрыт.
|
|||
13
Lokli
18.12.12
✎
11:21
|
Ну дык поделись своим вариантом решения. Интересно же.
|
|||
14
ТутЯ
18.12.12
✎
11:34
|
(11) все так + http://www.mykod.info/prostie-primeri/prostie-primeri-5
|
|||
15
ТутЯ
18.12.12
✎
11:52
|
т.к. код писать нужно 1с77, то получается так:
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Тип"); КоллекцияОбъектов.НоваяКолонка("Вид"); КоллекцияОбъектов.НоваяКолонка("Представление"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Тип = "Адрес"; КоллекцияОбъектов.Представление = Источник.Адрес; КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Тип = "ЮрАдрес"; КоллекцияОбъектов.Представление = Источник.ЮрАдрес; |
|||
16
ТутЯ
18.12.12
✎
11:52
|
Остается прикрутить только "Вид", а так работает.
|
|||
17
Aprobator
18.12.12
✎
11:55
|
да Вид вообще прикрутить раз плюнуть. Там же ссылка на предопределенные элементы. Тупо строкой имя предопределенного значения из конфигуратора. Даже правило конвертации значения рисовать не надо.
|
|||
18
ТутЯ
18.12.12
✎
12:03
|
Спасибо. Пробую, тестирую
|
|||
19
ТутЯ
21.12.12
✎
15:33
|
все получилось, но возник другой вопрос:
В справочнике Номенклатура 1с77 есть поля склад стеллаж полка ячейка в 1с8 в справочнике "Номенклатура" есть таличная часть "Адресное хранение" с реквизитами: склад ЗоныСкладов сталлажи полки ячейки где "Ячейки" - справочник, подчиненный справочнику "Полки" "Полки" подчинен справочнику "Сталлажи" "Сталлажи" подчинен справочнику "Зоны складов" "Зоны складов" подчинен справочнику "Склады" Как реализовать перенос с подчиненными? Как в предыдущем вопросе для ПКО Номенклатура->Номенклатура создала ПКГС ...- >"Адресное хранение" (получать из входящих данных) в обработчике "Перед обработкой" код КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Склад"); КоллекцияОбъектов.НоваяКолонка("Зона"); КоллекцияОбъектов.НоваяКолонка("Стеллаж"); КоллекцияОбъектов.НоваяКолонка("Полка"); КоллекцияОбъектов.НоваяКолонка("Ячейка"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Склад = Источник.Склад; КоллекцияОбъектов.Зона = "Основная"; КоллекцияОбъектов.Стеллаж = Источник.Стеллаж; КоллекцияОбъектов.Полка = Источник.Полка; КоллекцияОбъектов.Ячейка = Источник.Ячейка; Подскажите, плиз, как создать подчинение? |
|||
20
Aprobator
21.12.12
✎
15:48
|
|
|||
21
Aprobator
21.12.12
✎
15:49
|
ну и у адресных данных галку взвести "Получать из внешних данных".
|
|||
22
Aprobator
21.12.12
✎
15:50
|
код добавить в том же обработчике только чуть ниже. И я бы не стал использовать имя переменной КоллекцияОбъектов.
|
|||
23
ТутЯ
21.12.12
✎
15:50
|
Что дает (20)?
|
|||
24
Aprobator
21.12.12
✎
15:51
|
(23) указываешь имя подчиненной коллекции объектов. В данно случае ТЧ "АдресноеХранение".
|
|||
25
Aprobator
21.12.12
✎
15:52
|
а ты в ПКГС напрямую все делаешь.
|
|||
26
Aprobator
21.12.12
✎
15:52
|
тогда соррь
|
|||
27
ТутЯ
21.12.12
✎
15:53
|
внутри группы добавлены строчки
|
|||
28
Aprobator
21.12.12
✎
15:53
|
хотя при данном коде галка получать из входящих данных не нужна, поскольку ты явно заполняешь состав коллекции.
|
|||
29
ТутЯ
21.12.12
✎
15:54
|
да, и там же и правила нужно нарисовать как я понимаю...
|
|||
30
Aprobator
21.12.12
✎
15:54
|
(29) нет - ссылка на правила указывается у реквизитов внутри группы
|
|||
31
ТутЯ
21.12.12
✎
15:55
|
я про это
|
|||
32
Aprobator
21.12.12
✎
15:57
|
а все понял про что ты
|
|||
33
Aprobator
21.12.12
✎
16:00
|
внутри группы у реквизитов делаешь так:
Для Ячейки к примеру
и в ПКО куда это передается для владельца ставишь галку Получать из входящих данных. |
|||
34
Aprobator
21.12.12
✎
16:00
|
также в перед выгрузкой.
|
|||
35
ТутЯ
21.12.12
✎
16:02
|
Смущает текст "ПолкаВладелец"
|
|||
36
Aprobator
21.12.12
✎
16:04
|
(35) ну пропиши просто Источник.Владелец ). Я просто к примеру показал.
|
|||
37
Aprobator
21.12.12
✎
16:05
|
тьфу Источник.Полка.
|
|||
38
acsent
21.12.12
✎
16:05
|
(20) зачем такой изврат?
|
|||
39
Aprobator
21.12.12
✎
16:05
|
если что я фотки еще не видел )
|
|||
40
Aprobator
21.12.12
✎
16:05
|
(38) да косякнул чего то )
|
|||
41
Aprobator
21.12.12
✎
16:07
|
+(40) у меня эта КД просто мозг выела. Достали эти переносы. Механизм КД сам по себе - чудесный. Но блин, как тяжко разгребать кривые данные и "выпрямлять" их для переноса.
|
|||
42
acsent
21.12.12
✎
16:08
|
(38) хотя в типовых правилах такое сплошь и рядом. Но зачем
|
|||
43
Aprobator
21.12.12
✎
16:11
|
(42) в типовых хз зачем. Я просто такие вещи прописываю не в ПКГС, а в ПКО (вот по привычке тут и ляпнул). Потом чисто удобнее лазить и смотреть где и что заполнял. Сразу в объект залез и там сразу все видишь. А не каждое ПКГС ковырять отдельно еще.
|
|||
44
ТутЯ
21.12.12
✎
16:11
|
фото добавила
|
|||
45
Aprobator
21.12.12
✎
16:13
|
помогло?
|
|||
46
ТутЯ
21.12.12
✎
16:15
|
Ошибка исполнения обработчика: ПКС_ПередВыгрузкой_Номенклатура_АдресноеХранение_Стеллаж_Реквизит16
- Поле агрегатного объекта не обнаружено (Зона) |
|||
47
Aprobator
21.12.12
✎
16:16
|
галка у ПКГС получать из входящих данных убрана?
|
|||
48
ТутЯ
21.12.12
✎
16:18
|
и с галкой и без галки ошибка одинаковая
|
|||
49
Aprobator
21.12.12
✎
16:21
|
ну дык там надо:
|
|||
50
Aprobator
21.12.12
✎
16:21
|
а не Источни.Зона ))))
|
|||
51
Aprobator
21.12.12
✎
16:21
|
Источник.Зона ))))
|
|||
52
ТутЯ
21.12.12
✎
16:23
|
дада, щас пробую
|
|||
53
ТутЯ
21.12.12
✎
16:35
|
ЗоныСкладов пустое наименование
Сталлажи не создалась запись |
|||
54
Aprobator
21.12.12
✎
16:44
|
значит что то не так в ПКО для свойств стеллажи и Зоны складов.
|
|||
55
ТутЯ
21.12.12
✎
16:48
|
Зону складов заполнила)
|
|||
56
ТутЯ
21.12.12
✎
16:50
|
Стеллаж не записывает.
|
|||
57
Aprobator
21.12.12
✎
16:50
|
))))ладно - дальше сама разберешься. Пшел работать. Тоже КД ковыряю.
|
|||
58
Aprobator
21.12.12
✎
16:51
|
(56) смотри отладчиком - почему. Правило конвертации не забыла указать?
|
|||
59
ТутЯ
21.12.12
✎
16:51
|
Спасиб.)
|
|||
60
Stim
21.12.12
✎
17:00
|
охх,ёё. посмотрел фото, сразу забыл, что хотел написать, чтобы помочь..
|
|||
61
ТутЯ
21.12.12
✎
17:02
|
Вопрос актуальный еще. Настроить ПКО для Стеллажей)
|
|||
62
Stim
21.12.12
✎
17:03
|
ради Бога, поставьте поскромнее фото..
|
|||
63
ТутЯ
21.12.12
✎
17:06
|
Тогда в другой раз фото. Только что в той не скромного...
|
|||
64
ТутЯ
04.01.13
✎
14:01
|
Если как в v8: Конвертация данных. Договор в контрагентах. нарисовать текст, то не работает
// ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", Источник.Склад); ИсходящиеДанные.Установить("Зона", "Основная"); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЗоныСкладов"); // ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", "Основная"); ИсходящиеДанные.Установить("Стеллаж", Источник.Стеллаж); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"Стеллажи"); // ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", Источник.Стеллаж); ИсходящиеДанные.Установить("Полка", Источник.Полка); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"Полки"); // ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", Источник.Полка); ИсходящиеДанные.Установить("Ячейка", Источник.Ячейка); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"Ячейки"); |
|||
65
ТутЯ
04.01.13
✎
14:13
|
Связку Склад-Зоны складов создает, а дальше никак.
В табличной части элементы заполняются, но они без подчинения. |
|||
66
Aprobator
04.01.13
✎
19:24
|
Может правила для владельцев не понимала или ссылки на них?
|
|||
67
Aprobator
04.01.13
✎
19:24
|
Не прописала?
|
|||
68
ТутЯ
04.01.13
✎
19:25
|
все получилось. Щас напишу как сделала.
|
|||
69
Aprobator
04.01.13
✎
19:28
|
Там главное вроде владельца первым создать.
|
|||
70
ТутЯ
04.01.13
✎
19:36
|
ПКГС
...-> Адресное хранение Перед обработкой Если ПустоеЗначение(Источник.Склад)=1 Тогда Склад = Константа.ОснСклад; Иначе Склад = Источник.Склад; КонецЕсли; КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); КоллекцияОбъектов.НоваяКолонка("Склад"); КоллекцияОбъектов.НоваяКолонка("Зона"); КоллекцияОбъектов.НоваяКолонка("Стеллаж"); КоллекцияОбъектов.НоваяКолонка("Полка"); КоллекцияОбъектов.НоваяКолонка("Ячейка"); КоллекцияОбъектов.НоваяСтрока(); КоллекцияОбъектов.Склад = Склад; КоллекцияОбъектов.Зона = "Основная"; КоллекцияОбъектов.Стеллаж = Источник.Стеллаж; КоллекцияОбъектов.Полка = Источник.Полка; КоллекцияОбъектов.Ячейка = Источник.Ячейка; Внутри группы 1. источник пустой- приемник "Склад" правило конвертации "Склады", короче все просто 2. источник пустой-приемник "Зона" правило "ЗоныСкладов" в ПередВыгрузкой код Если ПустоеЗначение(Источник.Склад)=1 Тогда Склад = Константа.ОснСклад; Иначе Склад = Источник.Склад; КонецЕсли; ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", Склад); ИсходящиеДанные.Установить("Зона", "Основная"); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЗоныСкладов"); ПКО "ЗоныСкладов" источник пустой- приемник "СправочникСсылка.ЗоныСкладов" 1) ПКС "Наименование" поиск по полю источник пустой(получить значение из входящих данных) в ПРиВыгрузке код Значение = ВходящиеДанные.Получить("Зона"); 2) ПКС "Владелец" поиск по полю источник пустой(получить значение из входящих данных) в ПРиВыгрузке код Значение = ВходящиеДанные.Получить("Владелец"); короче тоже все просто 3.источник пустой-приемник "Стеллажи" в ПередВыгрузкой код Если ПустоеЗначение(Источник.Склад)=1 Тогда Склад = Константа.ОснСклад; Иначе Склад = Источник.Склад; КонецЕсли; ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Склад", Склад); ИсходящиеДанные.Установить("Владелец", "Основная"); ИсходящиеДанные.Установить("Стеллаж", Источник.Стеллаж); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"Стеллажи"); ПКО "Стеллажи" источник пустой- приемник СправочникСсылка.Стеллажи 1) для наименования Значение = ВходящиеДанные.Получить("Стеллаж"); (аналогично как для зоны) 2)для владельца ИсходящиеДанные = СоздатьОбъект("СписокЗначений"); ИсходящиеДанные.Установить("Владелец", ВходящиеДанные.Получить("Склад")); ИсходящиеДанные.Установить("Зона", "Основная"); ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"ЗоныСкладов"); и т.д.... Смысл в том чтобы в при поиске владельца учитывать владельца самого владельца :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |