Имя: Пароль:
1C
1С v8
Вопрос по КД.Выгрузка только 100 элементов
0 serg-lom89
 
17.06.16
16:02
Добрый.
Вопрос по КД.
Есть база источник(торговля)
Есть база приемник(Самописка для тренировки ))));

Обмениваюсь обработкой "Универсальный обмен через XML".

так вот.Справочник один сильно большой и я хочу выгрузить только 100 элементов.И что бы руками не отбирать в обработке 100 элементов,как пытаюсь указать в событии ВПД указать выгрузку 100 объектов.

вот написал какой то
  
  ТекстЗапроса =  
  "ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 100
  |    ЕдиницыИзмерения.Ссылка как ЕдиницыИзмерения
  |ИЗ
  |    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения";
  
  
  
  ТЗ = Новый ТаблицаЗначений();
  ТЗ.Колонки.Добавить("ЕдиницыИзмерения");
  
  
  Запрос = новый Запрос(ТекстЗапроса);
  
  Выборка = Запрос.Выполнить().Выбрать();
  
  
  Если Выборка.Количество() = 0 Тогда
      Отказ = Истина;
  КонецЕсли;    
  
  
  Пока Выборка.Следующий() Цикл
      
      СтрокаТЗ = ТЗ.Добавить();
      СтрокаТЗ.ЕдиницыИзмерения = Выборка.ЕдиницыИзмерения;
      
  КонецЦикла;
  
  ИсходящиеДанные = Новый Структура;
  ВходящиеДанные = Новый Структура;
  СтруктураОтбора = Новый Структура;    
  
  Для Каждого СтрокаТЗ Из ТЗ Цикл
      
      
      СтруктураОтбора.Вставить("ЕдиницыИзмерения",СтрокаТЗ.ЕдиницыИзмерения);
      ВыгрузитьПоПравилу(ИсходящиеДанные, ,ВходящиеДанные , , "ЕдиницыИзмерения");
      
  КонецЦикла;

Подскажите возможно ли такое?и в чем опишибка если не дает выгрузить
1 Карупян
 
17.06.16
16:03
зачем через Входящие/Исходящие? Почему не Ссылки?
2 serg-lom89
 
17.06.16
16:08
(1) ну а вообще такое реально?
3 serg-lom89
 
17.06.16
16:08
всмысле по моему вопросу
4 serg-lom89
 
17.06.16
16:08
)
5 Очевидно
 
17.06.16
16:11
(2) Да , вполне реально ... тут другая загвоздка ... первые 100 должны выгрузится ... но для второй выгрузки тебе как-то нужно будет выбрать "Вторые 100" ... а как 1С узнает что они действительно "Вторые" ? как вариант можно попробовать сделать план обмена и по аналогии с механизмом "пост обработчиков обновления" - зарегестрировать справочник весь к обмену ... а потом в правиле выбрать "Первые 100" которые есть в этой регистрации к обмену ... после получения списка ссылок - удалять регистрацию ... выгрузка .. потом второй цикл 100 шт - получил ссылки , выгрузил , снял с регистрации ... и т.д.
6 serg-lom89
 
17.06.16
16:14
(5) ну это на данный момент не так актуаьно.хотя спасибо за идею.
пусть даже выбирать все тебе самые 100 но сортировка по коду,по наим..и т.д...
7 serg-lom89
 
17.06.16
16:14
фантазии полет можно продолжать  и дальше))
8 Очевидно
 
17.06.16
16:17
(6) и как при второй выгрузке понять на каком "коде" закончилась прошлая выгрузка ? ... или ты правила с запросом хочешь после каждого файла править ? ))
9 antgrom
 
17.06.16
16:18
Если используешь обработку "Универсальный обмен через XML"  ,то почему сразу не установить : "Использовать транзакции" и "количество элементов в транзакции" ?
зачем кодить если ты используешь что то стандартное и там это уже реализовано ?
10 serg-lom89
 
17.06.16
16:25
(9) дело не в том что реализованно,а в том что бы научиться,потому что только начинаю изучать КД.и всякие задачи могут возникнуть в рабоче
11 serg-lom89
 
17.06.16
16:27
вот и хочу разобраться.обратился сюда за помощью
12 takefive
 
17.06.16
16:30
пиши проще... тз не нужна
Пока Выборка.Следующий() Цикл
      ВыгрузитьПоПравилу(Выборка.ЕдиницыИзмерения);
КонецЦикла;
13 Йохохо
 
17.06.16
16:38
(0) выгрузить по правилу в пвд делать не надо. Так делают только чтобы выгрузить не основные данные, а косвенные. Чтобы не плодить ПВД, например. Для основной выборки надо заполнить предопределенную переменную, которая есть в справке