Имя: Пароль:
1C
1С v8
Конвертация данных
, ,
0 revril
 
14.03.13
23:11
Добрый вечер!Необходимо выполнить перенос справочников Сотрудники, Физлица и др, у которых есть свойство (указано в свойствах объекта в плане видов характеристик) Действующие и оно равно истина.Обмен омсуществляется между однотипными конфигурациями. Подскажите пожалуйста как задать условие при выгрузке или загрузке?
1 GenV
 
14.03.13
23:33
Посмотри описание обработчика "Перед обработкой" ПВД в КД. Там есть пример - это один из вариантов решения.
2 Худой
 
15.03.13
10:46
"Обмен омсуществляется между однотипными конфигурациями"
Так "однотипными" или одинаковыми?
Если конфы одинаковые, то есть обработка штатная, которая это делает без проблем.
3 lxndr
 
15.03.13
10:48
(2) ей еще фильтрануть надо по свойству
4 Худой
 
15.03.13
11:03
(3)Вот насчет фильров там не помню. Нажо глянуть
5 dgamelya
 
15.03.13
12:03
В обработчике перед загрузкой сделала отбор, но документы не загружаются почему то

Запрос = Новый Запрос();
Запрос.Текст =      
" ВЫБРАТЬ
|ЗначенияСвойствОбъектов.Значение
| ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ГДЕ
| ЗначенияСвойствОбъектов.Объект = &Док
|И ЗначенияСвойствОбъектов.Свойство = &Свойство";

Запрос.УстановитьПараметр("Док",Источник.Ссылка);
Запрос.УстановитьПараметр("Свойство", ПланывидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("САМ00000001"));

Результат = Запрос.Выполнить().Выбрать();

Проверено = Ложь;
Если Результат.Следующий() Тогда
Проверено = Результат.Значение;
КонецЕсли;
6 lxndr
 
15.03.13
12:21
(5) в обработчике ПередОбработкой для ПВД (!!) делай примерно так:

Запрос = Новый Запрос();
Запрос.Текст =      
" ВЫБРАТЬ
|ЗначенияСвойствОбъектов.Объект КАК Док
| ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ГДЕ
| ЗначенияСвойствОбъектов.Значение
|И ЗначенияСвойствОбъектов.Свойство = &Свойство";

Запрос.УстановитьПараметр("Свойство", ПланывидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("САМ00000001"));

Результат = Запрос.Выполнить().Выбрать();

Пока Результат.Следующий() Цикл
ВыгрузитьПоПравилу(Результат.Док);
КонецЕсли;
7 dgamelya
 
15.03.13
14:48
спасибо, так выгружает правда все документы, без разбора чему равно значение свойства. Буду искать дальше в чем проблема)
8 К_Дач
 
15.03.13
14:52
(7) Читай внимательно описание ПВД... там надо задать значение переменной Выборка. Выгрузить по правилу не надо. Ну и посмотри сначала в консоли, что твой запрос возвращает
9 cw014
 
15.03.13
14:53
НайтиПоКоду("САМ00000001")

:))) Улыбнуло... Коды САМ00000001, Я-САМ00000001, ОН-САМ00000001, ОНО-САМО0000001 :)))))
10 dgamelya
 
15.03.13
15:01
ВЫБРАТЬ
|ЗначенияСвойствОбъектов.Объект КАК Док
| ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ГДЕ
| ЗначенияСвойствОбъектов.Значение = Истина
|И ЗначенияСвойствОбъектов.Свойство = &Свойстo


Запрос возвращает элементы справочника, которые как раз нужны для выгрузки
11 dgamelya
 
15.03.13
16:27
вообщем теперь если выгружаю регистр сведений значениеСвойствОбъектов то выгружаются все элементы справочника ,а если не выгружаю это регистр, то срабатывает отбор, но в элементе справочника не проставляется значение свойства
12 К_Дач
 
15.03.13
17:54
Тут есть недокументированная тонкость)))

Названия полей выборки должны совпадать с названием полей, как если бы отрабатывала стандартная выгрузка?

То есть Твое "Как Док" не пойдет. Надо "Как Ссылка".
13 К_Дач
 
15.03.13
17:55
Ну и ВыборкаДанных = Запрос.Выполнить();