Имя: Пароль:
1C
1С v8
Подскажите - как правильно написать в OLE?
Ø (andrewks 16.07.2011 22:32)
0 Невский Александр
 
16.07.11
20:55
Пишу обработку для сверки данных по регистрам УТ 11 и ТиС 9.2, делаю через OLE
Одним из пунктов идет сверка остатков по комитентам

В 7.7 написано вот так:
 ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)

   |Период с ДатаНачала по ДатаКонца;
   |Фирма            = Регистр.ПартииНаличие.     Фирма,
   |                  Регистр.ПартииОтданные.    Фирма,
   |                  Регистр.РеализованныйТовар.Фирма;
   |УпрАналитика    = Регистр.ПартииНаличие.     Фирма.УпрАналитика,
   |                  Регистр.ПартииОтданные.    Фирма.УпрАналитика,
   |                  Регистр.РеализованныйТовар.Фирма.УпрАналитика;
   |ЮрЛицо         = Регистр.ПартииНаличие.     Фирма.ЮрЛицо,
   |                  Регистр.ПартииОтданные.    Фирма.ЮрЛицо,
   |                  Регистр.РеализованныйТовар.Фирма.ЮрЛицо;
   |Номенклатура    = Регистр.ПартииНаличие.     Номенклатура,
   |                  Регистр.ПартииОтданные.    Номенклатура,
   |                  Регистр.РеализованныйТовар.Номенклатура;
   |Комитент        = Регистр.ПартииНаличие.     Партия.Поставщик,
   |                 Регистр.ПартииОтданные.    Партия.Поставщик,
   |                  Регистр.РеализованныйТовар.Договор.Владелец;
   |СтатусПартии   = Регистр.ПартииНаличие.     СтатусПартии,
   |                 Регистр.ПартииОтданные.    СтатусПартии;
   |Договор        = Регистр.ПартииНаличие.     Партия.ДоговорПоставщика,
   |                 Регистр.ПартииОтданные.    Партия.ДоговорПоставщика,
   |                  Регистр.РеализованныйТовар.Договор;
   |Цена            = Регистр.ПартииНаличие.     Партия.ЗакупочнаяЦена,
   |                 Регистр.ПартииОтданные.    Партия.ЗакупочнаяЦена,
   |                  Регистр.РеализованныйТовар.Партия.ЗакупочнаяЦена;
   |КодОперации    = Регистр.ПартииНаличие.     КодОперации,
   |                 Регистр.ПартииОтданные.    КодОперации;";
   
   ТекстЗапроса = ТекстЗапроса +
   "КолОстаток     = Регистр.ПартииНаличие.     Количество,
   |                 Регистр.ПартииОтданные.    Количество;
   |КолПродажи        = Регистр.РеализованныйТовар.Количество;";
   
   ТекстЗапроса = ТекстЗапроса +
   "Функция НачОстОстаток = НачОст(КолОстаток) Когда (СтатусПартии = СтатусПринятый);
   |Функция ПриходОстаток = Приход(КолОстаток) Когда (СтатусПартии = СтатусПринятый);
   |Функция РасходОстаток = Расход(КолОстаток) Когда (СтатусПартии = СтатусПринятый);
   |Функция КонОстОстаток = КонОст(КолОстаток) Когда (СтатусПартии = СтатусПринятый);
   |Условие (КодОперации <> глКО.ПередачаНаРеализацию);
   |Условие (КодОперации <> глКО.Перемещение);
   |Условие (КодОперации <> глКО.ПередачаВРозницу);
   |Условие (КодОперации <> глКО.ВозвратИзРозницы);
   |Условие (КодОперации <> глКО.ВозвратОтРеализатора);";
   
   ТекстЗапроса = ТекстЗапроса +
   "Функция КонОстПродажи = КонОст(КолПродажи);
   |Функция НачОстПродажи = НачОст(КолПродажи);
   |Функция ПриходПродажи = Приход(КолПродажи);
   |Функция РасходПродажи = Расход(КолПродажи);";
                               
   ТекстЗапроса = ТекстЗапроса +
   "Группировка Комитент;
   |Группировка Договор;
   |Группировка Номенклатура;
   |Группировка Цена;";

Но при OLE у меня в 8.2 выходит ошибка - не нравится "СтатусПринятый" и "Перечисление"

Переписал запрос вот таким образом:
ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)

   |Период с "+"'31.12.10'"+ " по "+"'31.12.10'" +";
   |Фирма            = Регистр.ПартииНаличие.     Фирма,
   |                  Регистр.ПартииОтданные.    Фирма,
   |                  Регистр.РеализованныйТовар.Фирма;
   |УпрАналитика    = Регистр.ПартииНаличие.     Фирма.УпрАналитика,
   |                  Регистр.ПартииОтданные.    Фирма.УпрАналитика,
   |                  Регистр.РеализованныйТовар.Фирма.УпрАналитика;
   |ЮрЛицо         = Регистр.ПартииНаличие.     Фирма.ЮрЛицо,
   |                  Регистр.ПартииОтданные.    Фирма.ЮрЛицо,
   |                  Регистр.РеализованныйТовар.Фирма.ЮрЛицо;
   |Номенклатура    = Регистр.ПартииНаличие.     Номенклатура,
   |                  Регистр.ПартииОтданные.    Номенклатура,
   |                  Регистр.РеализованныйТовар.Номенклатура;
   |Комитент        = Регистр.ПартииНаличие.     Партия.Поставщик,
   |                 Регистр.ПартииОтданные.    Партия.Поставщик,
   |                  Регистр.РеализованныйТовар.Договор.Владелец;
   |СтатусПартии   = Регистр.ПартииНаличие.     СтатусПартии,
   |                 Регистр.ПартииОтданные.    СтатусПартии;
   |Договор        = Регистр.ПартииНаличие.     Партия.ДоговорПоставщика,
   |                 Регистр.ПартииОтданные.    Партия.ДоговорПоставщика,
   |                  Регистр.РеализованныйТовар.Договор;
   |Цена            = Регистр.ПартииНаличие.     Партия.ЗакупочнаяЦена,
   |                 Регистр.ПартииОтданные.    Партия.ЗакупочнаяЦена,
   |                  Регистр.РеализованныйТовар.Партия.ЗакупочнаяЦена;
   |КодОперации    = Регистр.ПартииНаличие.     КодОперации,
   |                 Регистр.ПартииОтданные.    КодОперации;
   
   |КолОстаток     = Регистр.ПартииНаличие.     Количество,
   |                 Регистр.ПартииОтданные.    Количество;
   |КолПродажи        = Регистр.РеализованныйТовар.Количество;
   
   |Функция НачОстОстаток = НачОст(КолОстаток) Когда (СтатусПартии.Идентификатор() = ""Т_Принятый"");
   |Функция ПриходОстаток = Приход(КолОстаток) Когда (СтатусПартии.Идентификатор() = ""Т_Принятый"");
   |Функция РасходОстаток = Расход(КолОстаток) Когда (СтатусПартии.Идентификатор() = ""Т_Принятый"");
   |Функция КонОстОстаток = КонОст(КолОстаток) Когда (СтатусПартии.Идентификатор() = ""Т_Принятый"");
   
   |Условие (КодОперации.Идентификатор() <> ""ПередачаНаРеализацию"");
   |Условие (КодОперации.Идентификатор() <> ""ПередачаВРозницу"");
   |Условие (КодОперации.Идентификатор() <> ""ВозвратИзРозницы"");
   |Условие (КодОперации.Идентификатор() <> ""ВозвратОтРеализатора"");

   |Функция КонОстПродажи = КонОст(КолПродажи);
   |Функция НачОстПродажи = НачОст(КолПродажи);
   |Функция ПриходПродажи = Приход(КолПродажи);
   |Функция РасходПродажи = Расход(КолПродажи);
   
   |Группировка Комитент;
   |Группировка Договор;
   |Группировка Номенклатура;
   |Группировка Цена;";


Подскажите - первый и второй запросы - отработают одинаково? И если нет - может кто переносил данные из 7.7 в 8.1 (8.2) через OLE - как это лучше сделать?
1 andrewks
 
16.07.11
22:32
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.