Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   К знатокам Конвертации данных )) (http://forums.kuban.ru/f1040/k_znatokam_konvertacii_dannyh-3341111.html)

USSR 23.11.2012 07:21

К знатокам Конвертации данных ))
 
Теперь вопрос к знатокам конвертации данных 2.1
Данные ходят из чужой перепесанной ТИС в БП 2.0
Надо разделить табличную часть документа-источника на 2 табличные части приемника (товары и услуги). Путешествие в обе табличные части БП я сделал, но вот в каком обработчике вырезать нужные позиции для каждой табличной части? Все облазил, никак не пойму

USSR 23.11.2012 07:24

Может просто "после загрузки" удалить из каждой табличной части лишнее?

Reaper 23.11.2012 08:17

Становишься на группу свойств, представляющую ТЧ в КД и давишь на карандаш в панели управления над табличным полем. Откроется форма редактирования группы свйств, для нее определены свои обработчики - не помню как называется дословно, там есть обработчик, срабатывающий перед конвертацией строки ТЧ, в котором можно проверить условие и отказаться от конвертации строки.

Климов Сергей 23.11.2012 08:42

Вот пример. ПКС ПередОбработкой для группы свойств табличной части.

КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов);
н = 0;
Пока н < КоллекцияОбъектов.КоличествоСтрок() Цикл
н = н + 1;
Если КоллекцияОбъектов.Всего = 0 Тогда
КоллекцияОбъектов.УдалитьСтроку(н);
н = н - 1;
КонецЕсли;
КонецЦикла;

Я отбираю только строки с Всего > 0. У тебя будет отбор по виду номенклатуры.

USSR 23.11.2012 11:12

(2)вот это я и не пойму в каком месте сделать ? в настройке правил обмена я не могу добраться до группы свойств ТЧ, она просто сворачивается и разворачивается ) Не имел дел с КД )
(3) Где открыть эту группу свойств?)

Климов Сергей 23.11.2012 11:31

В списке ПКС добавляешь группу (папку). В качетсве приемника указываешь соответствующую табличную часть. Т.е. у тебя будут две папки: Товары и Услуги. Внутри папки нужно создать ПКС для каждого из (нужных) реквизитов ТЧ. Указываешь только приемник.

Климов Сергей 23.11.2012 11:32

+(5) Возьми типовые правила перехода 7.7->8. Хоть ТиС, хоть БП. И там посмотри правила для РТиУ или ПТиУ.

USSR 23.11.2012 11:35

да я в ПКС создал и табличную часть, добавил все реквизиты. Они нормально ходят. И типовую конвертацию смотрю. Не пойму как попасть в обработки табличной части

Климов Сергей 23.11.2012 12:17

Нужно стать на папку. И нажать "карандашик". Или F2.

Oksanakm 23.11.2012 13:41

7-USSR >Сверни папку

USSR 23.11.2012 14:46

Спасибо, коллеги) Не знал что надо спозиционироваться именно на папку ) Когда курсор просто в строке, ни F2, ни каранадаш не реагировали) Я КД вижу первую неделю, никакого опыта. Но вещь достаточно крутая и в принципе легко осваиваемая.

Управление торговлей 11 25.11.2012 11:23

В обработчике "Перед выгрузкой" сформировать список значений "Входящие данные", табличную часть выгрузить в две таблицы значений, поделив как надо, и добавить в список значений с именами соответствующих табличных частей. у табличных частей указать получать данные "из входящих данных"
3-Климов Сергей >Сергей, зачем плохому учите? надо делать структуру со значением для поиска и использовать НайтиСтроки()
0-USSR >в данном конкретном случае лучше выгрузить все в одну табличную часть, а поделить уже ПослеЗагрузки, на связываясь с правилами.
будет быстрее работать

USSR 25.11.2012 11:26

(11)спасибо ) Приму к сведению. А в первом приближении все получилось, работает. Всем огромное спасибо

Климов Сергей 26.11.2012 09:08

2(11) [b]Управление Торговлей 11 [/b][em]3-Климов Сергей >Сергей, зачем плохому учите? надо делать структуру со значением для поиска и использовать НайтиСтроки()[/em]
Спасибо за науку. Я так не умею.

Управление торговлей 11 27.11.2012 22:10

13-Климов Сергей >примерно так:
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов);
Отбор=новый структура("Количество",0);
Строки=КоллекцияОбъектов.НайтиСтроки(Отбор);
Для каждого Стр из Строки цикл
КоллекцияОбъектов.УдалитьСтроку(Стр);
КонецЦикла;

USSR 28.11.2012 03:37

(14)При обмене между 7-кой и БП такое не прокатит )

Климов Сергей 28.11.2012 08:47

2(14) Понял, спасибо!
2(15) Ага! Значит я не совсем плохому учу! :-)

Управление торговлей 11 02.12.2012 01:59

15-USSR >да, что-то я затупил
а в 7.7 я так делаю:
КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений");
Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов );
КоллекцияОбъектов.Сортировать("Всего+");
Пока КоллекцияОбъектов.КоличествоСтрок() >0 Цикл
КоллекцияОбъектов.ПолучитьСтрокуПоНомеру(1);
Если КоллекцияОбъектов.Всего > 0 Тогда
прервать;
иначе
КоллекцияОбъектов.УдалитьСтроку(1);
конецесли;
КонецЦикла;
КоллекцияОбъектов.Сортировать("НомерСтрокиДокумента+");


Текущее время: 17:08. Часовой пояс GMT +3.