Advertisement
DemAl

Мегаальянс. Регистр Факт: Оптимизация движений

Jun 17th, 2021
4,340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 9.92 KB | None | 0 0
  1. // +++
  2. Процедура ЗаписьВРегистрФакт(Источник) Экспорт
  3.    
  4.     Если ТипЗнч(Источник) = Тип("ДокументОбъект.Заявка") //Боголюбская Л. 02.03.2021 (пока так, потом надо сделать ПланВидовХарактеристик, чтобы проверять на вхождение Типа источника)
  5.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.Заявка")
  6.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ИзменениеЦен")
  7.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ПоступлениеТоваров")
  8.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаявкаНаРемонт")
  9.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПокупателя")
  10.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ЗаказПоставщику")
  11.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ИзвлечениеТоваровИзПроизводства")
  12.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ПеремещениеТоваровВПроизводство")
  13.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ПеремещениеТоваров")
  14.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.Инвентаризация")
  15.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ИнвентаризацияАвтомобилей")
  16.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ВъездВыезд")
  17.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ВводРозничныхЦенНаКомплектацииАвто")
  18.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ЖурналЗаписиНаКузовнойРемонт")
  19.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ВводЦенНаЦветаМоделей")
  20.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.СчетФактураВыданный")
  21.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.СчетФактураПолученный")
  22.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.СчетНаОплату")
  23.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.Пропуск")
  24.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ПроактивныйКонтакт")
  25.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.УстановкаЛиквидности")
  26.         ИЛИ  ТипЗнч(Источник) = Тип("ДокументОбъект.ОперацияСМаркированнымиТоварами")
  27.         Тогда
  28.         Возврат
  29.     КонецЕсли;
  30.    
  31.     Очистка(Источник);
  32.        
  33.     ДатаНачала = НачалоДня(Источник.Дата);
  34.    
  35.     ДатаОкончания = КонецДня(Источник.Дата);
  36.  
  37.     Запрос = Новый Запрос;
  38.     Запрос.Текст =
  39.     "ВЫБРАТЬ
  40.     |   АналитикаПланирования.Ссылка КАК Ссылка
  41.     |ИЗ
  42.     |   Справочник.АналитикаПланирования КАК АналитикаПланирования
  43.     |ГДЕ
  44.     |   ПОДСТРОКА(АналитикаПланирования.ТекстЗапроса, 1, 500) <> &Текст";
  45.                                                                      
  46.     Текст = "";
  47.     Запрос.УстановитьПараметр("Текст", Текст);
  48.     //Запрос.УстановитьПараметр("Ссылка", справочники.АналитикаПланирования.НайтиПоКоду("Д07"));
  49.    
  50.     Результат = Запрос.Выполнить();
  51.    
  52.     Выборка = Результат.Выбрать();
  53.    
  54.     Пока Выборка.Следующий() Цикл
  55.        
  56.         Аналитика = Выборка.Ссылка;
  57.        
  58.         ЗапросДанныхАналитики = Новый Запрос;
  59.         ЗапросДанныхАналитики.Текст = Аналитика.ТекстЗапроса;
  60.         ЗапросДанныхАналитики.УстановитьПараметр("ДатаНачала",НачалоДня(ДатаНачала));
  61.         ЗапросДанныхАналитики.УстановитьПараметр("ДатаОкончания",КонецДня(ДатаОкончания));
  62.         //ЗапросДанныхАналитики.УстановитьПараметр("ДилерскийЦентр",ЭтотОбъект.ДилерскийЦентр);
  63.         //ЗапросДанныхАналитики.УстановитьПараметр("ДатаНачала", Источник.Дата); //Боголюбская Л. 25.08.2020
  64.         //ЗапросДанныхАналитики.УстановитьПараметр("ДатаОкончания", Источник.Дата); //Боголюбская Л. 25.08.2020
  65.        
  66.         РезультатДанных = ЗапросДанныхАналитики.Выполнить();
  67.        
  68.         ВыборкаДанных = РезультатДанных.Выбрать();
  69.        
  70.         Пока ВыборкаДанных.Следующий() Цикл
  71.            
  72.             // ++ Муравьев (17.06.2021)
  73.             // Ограничение по регистратору
  74.             Если ВыборкаДанных.Регистратор <> Источник.Ссылка Тогда
  75.                        
  76.                 Продолжить;  
  77.            
  78.             КонецЕсли;        
  79.             // -- Муравьев (17.06.2021)
  80.            
  81.             // ограничение по дате выдачи
  82.             Если ТипЗнч(ВыборкаДанных.Регистратор) = Тип("ДокументСсылка.ЗаказНаряд") Тогда
  83.                
  84.                 Если ВыборкаДанных.Регистратор.ДатаВыдачиАвто < Дата(2018,06,01,00,00,00) Тогда
  85.                     Продолжить;
  86.                 КонецЕсли;
  87.                
  88.             КонецЕсли;
  89.            
  90.            
  91.             Запись = Регистрысведений.Факт.СоздатьМенеджерЗаписи();
  92.            
  93.             Если ТипЗнч(ВыборкаДанных.Регистратор) = Тип("ДокументСсылка.ЗаказНаряд") Тогда
  94.                 Если ВыборкаДанных.Регистратор.Цех <> Справочники.Цеха.НайтиПоКоду("ЦБ000001") Тогда
  95.                     Если ЗначениеЗаполнено(ВыборкаДанных.Регистратор.ДилерскийЦентр) Тогда
  96.                         Запись.ДиллерскийЦентр = ВыборкаДанных.ДилерскийЦентр; //Боголюбская Л. 24.12.2020
  97.                     Иначе
  98.                         Если ВыборкаДанных.Регистратор.Автомобиль.ЭтоНиссан Тогда
  99.                             Запись.ДиллерскийЦентр = Перечисления.ДилерскийЦентр.Nissan;
  100.                         ИначеЕсли ВыборкаДанных.Регистратор.Автомобиль.ЭтоДатсан Тогда
  101.                             Запись.ДиллерскийЦентр = Перечисления.ДилерскийЦентр.Datsun;
  102.                         Иначе   
  103.                             Запись.ДиллерскийЦентр = Перечисления.ДилерскийЦентр.Nissan;
  104.                         КонецЕсли;
  105.                     КонецЕсли;
  106.                 Иначе
  107.                         Если ЗначениеЗаполнено(ВыборкаДанных.Регистратор.ДилерскийЦентр) Тогда
  108.                             Запись.ДиллерскийЦентр = ВыборкаДанных.ДилерскийЦентр; //Боголюбская Л. 24.12.2020
  109.                         Иначе
  110.                             Запись.ДиллерскийЦентр = Перечисления.ДилерскийЦентр.Nissan;
  111.                         КонецЕсли;
  112.                 КонецЕсли;
  113.             Иначе
  114.                 Запись.ДиллерскийЦентр  = ВыборкаДанных.ДилерскийЦентр;
  115.             КонецЕсли;
  116.            
  117.             Если НЕ ЗначениеЗаполнено(ВыборкаДанных.ДилерскийЦентр)  Тогда
  118.                 Запись.ДиллерскийЦентр = Перечисления.ДилерскийЦентр.Nissan;
  119.             КонецЕсли;
  120.             Запись.АналитиикаПланирования = Аналитика;
  121.             Запись.ПериодОтчета = НачалоДня(ВыборкаДанных.Регистратор.Дата);
  122.             Запись.СуммаФакт = ВыборкаДанных.Прибыль;
  123.             Запись.СуммаПродажи = ВыборкаДанных.СуммаПродажи;
  124.             Запись.Себестоимость = ВыборкаДанных.Себестоимость;
  125.             Запись.Документ = ВыборкаДанных.Регистратор;
  126.        
  127.                        
  128.             Запись.Записать(Истина);
  129.                    
  130.         КонецЦикла;  
  131.        
  132.     КонецЦикла;
  133.    
  134.  
  135.    
  136.     Расходы(Источник);
  137.    
  138. КонецПроцедуры
  139.  
  140. Процедура Очистка(Источник) Экспорт
  141.    
  142.     НаборЗаписей = РегистрыСведений.Факт.СоздатьНаборЗаписей();
  143.    
  144.     НаборЗаписей.Отбор.ПериодОтчета.Установить(НачалоДня(Источник.Дата));
  145.     // ++ Муравьев (17.06.2021)
  146.     // Ограничение по регистратору
  147.     НаборЗаписей.Отбор.Документ.Установить(Источник.Ссылка);
  148.     // -- Муравьев (17.06.2021)
  149.    
  150.     НаборЗаписей.Записать();
  151.    
  152. КонецПроцедуры
  153. // +++   
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement