Имя: Пароль:
1C
1С v8
Конвертация данных не переносит данные справочника по запросу
,
0 m_roose
 
12.04.16
16:18
Всем привет! Помогите, пожалуйста, такая проблема.. Нужно перегрузить справочник номенклатуры из одной базы в другую, но не весь целиком, а по определенному условию. Я создала все правила, создала запрос, по которому нужно выгрузить данные. В ПВД в обработчике ПередВыгрузкой добавила следующее:

ТЗ = Запросы.ВыборкаНоменклатуры.Выполнить().Выгрузить();

НайденнаяСтрока = ТЗ.Найти(Объект.Ссылка);

Если НайденнаяСтрока = НЕОПРЕДЕЛЕНО Тогда
    Отказ = Истина;
иначе
    Сообщить("Объект " + Объект.Ссылка.Наименование + " выгружен");    
КонецЕсли;

Т.е. я в запросе получаю все нужные мне элементы,которые хочу выгрузить, потом проверяю, есть  ли текущий объект в результате этого запроса, и если есть, то выгружаю, если нет - не выгружаю.

Так вот, получается в результате выгружается все равно все. Хотя код видно, что работает правильно, сообщения о выгруженных объктах правильные. Но ощущение что строку "отказ = истина" он просто игнорит. Также проверила, убрали весь код, оставили только "отказ = истина",так сработало, ничего не выгрузило. Вобщем не понятно что не так..
1 Darky
 
12.04.16
16:33
Если запрос уже возвращает необходимые элементы, зачем еще какие-то проверки? Тут или ВыборкаДанных = ТЗ, или ВыгрузитьПоПравилу в ПВД "Перед обработкой"
2 m_roose
 
12.04.16
16:39
(1) просто с выборкой вообще не разобралась как делать, не работали мои варианты
3 Йохохо
 
12.04.16
16:43
(2) ВыборкаДанных = Запрос.Выполнить().Выбрать();
4 Darky
 
12.04.16
16:44
Понятно. Почитайте справку по обработчику Перед обработкой, там пример внятный. Для одноразового обмена достаточно.
5 Wern
 
12.04.16
16:53
(4) Не там пример какой то не адекватный как раз.
Нужно примерно следующее в "Перед обработкой" ПВД
Запрос=Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.ВашСправочник ГДЕ ВашеУсловие");
ВыборкаДанных=Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
И обязательно установить реквизит "Способ выборки"=Произвольный алгоритм
6 m_roose
 
12.04.16
16:57
(5) т.е. с выборкойданных потом ничего писать не надо?
7 Wern
 
12.04.16
17:00
(6) нет. дальше уже сама конвертация сделает
8 Wern
 
12.04.16
17:01
(6) а ну естественно нужно ПКО на этот справочник.
9 m_roose
 
12.04.16
17:13
(8) спасибо. пробовала такие варианты, не работало. видимо в каких-то мелочах косячила. и по  ним как раз дельной инфы нигде не нашла
10 m_roose
 
12.04.16
17:23
В итоге сделала своим способом, в условии в иначе добавила Отказ = ложь. И все выгрузилось как надо

Чудеса...
11 Карупян
 
12.04.16
17:44
НайденнаяСтрока = ТЗ.Найти(Объект.Ссылка);
Синтаксис у найти немного другой
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой