0
- 23.11.2012 - 07:21
|
Теперь вопрос к знатокам конвертации данных 2.1 Данные ходят из чужой перепесанной ТИС в БП 2.0 Надо разделить табличную часть документа-источника на 2 табличные части приемника (товары и услуги). Путешествие в обе табличные части БП я сделал, но вот в каком обработчике вырезать нужные позиции для каждой табличной части? Все облазил, никак не пойму | |
1
- 23.11.2012 - 07:24
| Может просто "после загрузки" удалить из каждой табличной части лишнее? | |
2
- 23.11.2012 - 08:17
| Становишься на группу свойств, представляющую ТЧ в КД и давишь на карандаш в панели управления над табличным полем. Откроется форма редактирования группы свйств, для нее определены свои обработчики - не помню как называется дословно, там есть обработчик, срабатывающий перед конвертацией строки ТЧ, в котором можно проверить условие и отказаться от конвертации строки. | |
3
- 23.11.2012 - 08:42
|
Вот пример. ПКС ПередОбработкой для группы свойств табличной части. КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов ); н = 0; Пока н < КоллекцияОбъектов.КоличествоСтрок() Цикл н = н + 1; Если КоллекцияОбъектов.Всего = 0 Тогда КоллекцияОбъектов.УдалитьСтроку(н); н = н - 1; КонецЕсли; КонецЦикла; Я отбираю только строки с Всего > 0. У тебя будет отбор по виду номенклатуры. | |
4
- 23.11.2012 - 11:12
|
(2)вот это я и не пойму в каком месте сделать ? в настройке правил обмена я не могу добраться до группы свойств ТЧ, она просто сворачивается и разворачивается ) Не имел дел с КД ) (3) Где открыть эту группу свойств?) | |
5
- 23.11.2012 - 11:31
| В списке ПКС добавляешь группу (папку). В качетсве приемника указываешь соответствующую табличную часть. Т.е. у тебя будут две папки: Товары и Услуги. Внутри папки нужно создать ПКС для каждого из (нужных) реквизитов ТЧ. Указываешь только приемник. | |
6
- 23.11.2012 - 11:32
| +(5) Возьми типовые правила перехода 7.7->8. Хоть ТиС, хоть БП. И там посмотри правила для РТиУ или ПТиУ. | |
7
- 23.11.2012 - 11:35
| да я в ПКС создал и табличную часть, добавил все реквизиты. Они нормально ходят. И типовую конвертацию смотрю. Не пойму как попасть в обработки табличной части | |
8
- 23.11.2012 - 12:17
| Нужно стать на папку. И нажать "карандашик". Или F2. | |
9
- 23.11.2012 - 13:41
| 7-USSR >Сверни папку | |
10
- 23.11.2012 - 14:46
| Спасибо, коллеги) Не знал что надо спозиционироваться именно на папку ) Когда курсор просто в строке, ни F2, ни каранадаш не реагировали) Я КД вижу первую неделю, никакого опыта. Но вещь достаточно крутая и в принципе легко осваиваемая. | |
11
- 25.11.2012 - 11:23
|
В обработчике "Перед выгрузкой" сформировать список значений "Входящие данные", табличную часть выгрузить в две таблицы значений, поделив как надо, и добавить в список значений с именами соответствующих табличных частей. у табличных частей указать получать данные "из входящих данных" 3-Климов Сергей >Сергей, зачем плохому учите? надо делать структуру со значением для поиска и использовать НайтиСтроки() 0-USSR >в данном конкретном случае лучше выгрузить все в одну табличную часть, а поделить уже ПослеЗагрузки, на связываясь с правилами. будет быстрее работать | |
12
- 25.11.2012 - 11:26
| (11)спасибо ) Приму к сведению. А в первом приближении все получилось, работает. Всем огромное спасибо | |
13
- 26.11.2012 - 09:08
|
2(11) Управление Торговлей 11 3-Климов Сергей >Сергей, зачем плохому учите? надо делать структуру со значением для поиска и использовать НайтиСтроки() Спасибо за науку. Я так не умею. | |
14
- 27.11.2012 - 22:10
|
13-Климов Сергей >примерно так: КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов ); Отбор=новый структура("Количество",0); Строки=КоллекцияОбъектов.НайтиСтроки(Отбор); Для каждого Стр из Строки цикл КоллекцияОбъектов.УдалитьСтроку(Стр); КонецЦикла; | |
15
- 28.11.2012 - 03:37
| (14)При обмене между 7-кой и БП такое не прокатит ) | |
16
- 28.11.2012 - 08:47
|
2(14) Понял, спасибо! 2(15) Ага! Значит я не совсем плохому учу! :-) | |
17
- 02.12.2012 - 01:59
|
15-USSR >да, что-то я затупил а в 7.7 я так делаю: КоллекцияОбъектов = СоздатьОбъект("ТаблицаЗначений"); Источник.ВыгрузитьТабличнуюЧасть(КоллекцияОбъектов ); КоллекцияОбъектов.Сортировать("Всего+"); Пока КоллекцияОбъектов.КоличествоСтрок() >0 Цикл КоллекцияОбъектов.ПолучитьСтрокуПоНомеру(1); Если КоллекцияОбъектов.Всего > 0 Тогда прервать; иначе КоллекцияОбъектов.УдалитьСтроку(1); конецесли; КонецЦикла; КоллекцияОбъектов.Сортировать("НомерСтрокиДокумент а+"); | |
| Интернет-форум Краснодарского края и Краснодара |