SaveText.Ru

Без имени
  1.  
  2. Процедура ЗаписатьДанныеПоПартнеруБазуНаСервере(Контрагент, Партнер)
  3.         Запрос = Новый Запрос;
  4.         Запрос.Текст =
  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.         |                               ВТ_ЗаказыКлиентов.ЗаказКлиентаСсылка КАК Ссылка
  45.         |                       ИЗ
  46.         |                               ВТ_ЗаказыКлиентов КАК ВТ_ЗаказыКлиентов)
  47.         |
  48.         |СГРУППИРОВАТЬ ПО
  49.         |       РеализацияТоваровУслуг.ЗаказКлиента
  50.         |;
  51.         |
  52.         |////////////////////////////////////////////////////////////////////////////////
  53.         |ВЫБРАТЬ
  54.         |       ВТ_ЗаказыКлиентов.ЗаказКлиентаСсылка КАК ЗаказКлиентаСсылка,
  55.         |       ВТ_Реализации.РеализацияСсылка КАК РеализацияСсылка,
  56.         |       ВТ_РТО.РТОСсылка КАК РТОСсылка
  57.         |ПОМЕСТИТЬ ВТ_ЗаказыКлиентовПодчиненныеДок
  58.         |ИЗ
  59.         |       ВТ_ЗаказыКлиентов КАК ВТ_ЗаказыКлиентов
  60.         |               ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РТО КАК ВТ_РТО
  61.         |               ПО ВТ_ЗаказыКлиентов.ЗаказКлиентаСсылка = ВТ_РТО.ЗаказКлиентаСсылка
  62.         |               ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Реализации КАК ВТ_Реализации
  63.         |               ПО ВТ_ЗаказыКлиентов.ЗаказКлиентаСсылка = ВТ_Реализации.ЗаказКлиентаСсылка
  64.         |;
  65.         |
  66.         |////////////////////////////////////////////////////////////////////////////////
  67.         |ВЫБРАТЬ
  68.         |       ДоговорыКонтрагентов.Ссылка КАК СсылкаНаОбъект,
  69.         |       NULL КАК РеализацияТоваровУслуг,
  70.         |       NULL КАК РасходныйОрдерНаТовары
  71.         |ИЗ
  72.         |       Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
  73.         |ГДЕ
  74.         |       ДоговорыКонтрагентов.Контрагент = &Контрагент
  75.         |
  76.         |ОБЪЕДИНИТЬ ВСЕ
  77.         |
  78.         |ВЫБРАТЬ
  79.         |       СоглашенияСКлиентами.Ссылка,
  80.         |       NULL,
  81.         |       NULL
  82.         |ИЗ
  83.         |       Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
  84.         |ГДЕ
  85.         |       СоглашенияСКлиентами.Контрагент = &Контрагент
  86.         |
  87.         |ОБЪЕДИНИТЬ ВСЕ
  88.         |
  89.         |ВЫБРАТЬ
  90.         |       ВТ_ЗаказыКлиентовПодчиненныеДок.ЗаказКлиентаСсылка,
  91.         |       ВТ_ЗаказыКлиентовПодчиненныеДок.РеализацияСсылка,
  92.         |       ВТ_ЗаказыКлиентовПодчиненныеДок.РТОСсылка
  93.         |ИЗ
  94.         |       ВТ_ЗаказыКлиентовПодчиненныеДок КАК ВТ_ЗаказыКлиентовПодчиненныеДок
  95.         |
  96.         |ОБЪЕДИНИТЬ ВСЕ
  97.         |
  98.         |ВЫБРАТЬ
  99.         |       ПоступлениеБезналичныхДенежныхСредств.Ссылка,
  100.         |       NULL,
  101.         |       NULL
  102.         |ИЗ
  103.         |       Документ.ПоступлениеБезналичныхДенежныхСредств КАК ПоступлениеБезналичныхДенежныхСредств
  104.         |ГДЕ
  105.         |       ПоступлениеБезналичныхДенежныхСредств.Контрагент = &Контрагент";
  106.         Запрос.УстановитьПараметр("Контрагент", Контрагент);
  107.         РезультатЗапроса = Запрос.Выполнить();
  108.                
  109.         Если Не РезультатЗапроса.Пустой() Тогда
  110.                 Выборка = РезультатЗапроса.Выбрать();
  111.         Иначе
  112.                 Возврат;
  113.         КонецЕсли;
  114.        
  115.         СтруктураЗаписанныеОбъекты = Новый Структура();
  116.         СтруктураЗаписанныеОбъекты.Вставить("ДоговорыКонтрагентов", Новый Массив);
  117.         СтруктураЗаписанныеОбъекты.Вставить("СоглашенияСКлиентами", Новый Массив);
  118.         //СтруктураЗаписанныеОбъекты.Вставить("ПоступлениеБезналичныхДенежныхСредств", Новый Массив);
  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.                 //      Если ЗначениеЗаполнено(Выборка.РасходныйОрдерНаТовары) Тогда
  146.                 //              ОбъектРасходныйОрдер.Записать(РежимЗаписиДокумента.Проведение);
  147.                 //      КонецЕсли;
  148.                 //     
  149.                 //      Если ЗначениеЗаполнено(Выборка.РеализацияТоваровУслуг)  Тогда
  150.                 //              ОбъектРеализация.Записать(РежимЗаписиДокумента.Проведение);
  151.                 //              СтруктураЗаписанныеОбъекты.РеализацияТоваровУслуг.Добавить(ОбъектРеализация.Ссылка);
  152.                 //      КонецЕсли;
  153.                 //                     
  154.                 //      Продолжить;                  
  155.                 //КонецЕсли;
  156.                 Объект.Партнер = Партнер;
  157.                 Если ВсеТипыСправочников.СодержитТип(ТипЗнч(Выборка.СсылкаНаОбъект)) Тогда
  158.                         Объект.Записать();
  159.                         СтруктураЗаписанныеОбъекты[Объект.Метаданные().Имя].Добавить(Объект.Ссылка);
  160.                 //ИначеЕсли ВсеТипыДокументов.СодержитТип(ТипЗнч(Выборка.СсылкаНаОбъект)) Тогда
  161.                 //      ЗаписатьДокументПриНеобходимости(Объект, РежимЗаписиДокумента.Проведение);
  162.                 //      СтруктураЗаписанныеОбъекты[Объект.Метаданные().Имя].Добавить(Объект.Ссылка);
  163.                 КонецЕсли;
  164.         КонецЦикла;
  165.        
  166.         СообщениеОЗаписанныхОбъектах = "Измененные объекты: ";
  167.         Для каждого КлючИЗначение Из СтруктураЗаписанныеОбъекты Цикл
  168.                 Если КлючИЗначение.Значение.Количество() Тогда
  169.                         СообщениеОЗаписанныхОбъектах = СообщениеОЗаписанныхОбъектах + Символы.ПС + КлючИЗначение.Ключ + ": ";
  170.                         Для каждого Элем Из КлючИЗначение.Значение Цикл
  171.                                 СообщениеОЗаписанныхОбъектах = СообщениеОЗаписанныхОбъектах + Символы.ПС + Элем;
  172.                         КонецЦикла;
  173.                 КонецЕсли;
  174.         КонецЦикла;
  175.        
  176. КонецПроцедуры
  177.  
  178. Процедура КонтрагентПередЗаписьюПередЗаписью(Источник, Отказ) Экспорт
  179.        
  180.         Если Отказ = Истина Тогда
  181.                 Возврат;
  182.         КонецЕсли;
  183.        
  184.         Если Источник.ОбменДанными.Загрузка = Истина Тогда
  185.                 Возврат;
  186.         КонецЕсли;
  187.        
  188.         Если ТипЗнч(Источник) = Тип("СправочникОбъект.Контрагенты") Тогда
  189.                 ek_НужноМенятьПартнера_в_БД = Ложь;
  190.                 Если Источник.ДополнительныеСвойства.Свойство("ek_НужноМенятьПартнера_в_БД", ek_НужноМенятьПартнера_в_БД)
  191.                                 И ek_НужноМенятьПартнера_в_БД Тогда
  192.                         ЗаписатьДанныеПоПартнеруБазуНаСервере(Источник.Ссылка, Источник.Партнер);
  193.                 КонецЕсли;
  194.         КонецЕсли;
  195.        
  196. КонецПроцедуры
  197.  
  198. Процедура ЗаписатьДокументПриНеобходимости(ДокументОбъект, Режим=Неопределено)
  199.         Если ДокументОбъект.Проведен Тогда
  200.                 ДокументОбъект.Записать(Режим);
  201.         ИначеЕсли Режим <> РежимЗаписиДокумента.ОтменаПроведения Тогда
  202.                 ДокументОбъект.Записать();
  203.         КонецЕсли;     
  204. КонецПроцедуры
  205.  

Share with your friends:

Print