Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Фев 2018, 05:13
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помагите поставить запрет на перепроведение проведеных документов  (Прочитано 1098 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Geenij

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-06-26
  • Сайт: 
  • Профессия: Программист 8.1
Процедура КнопкаСгенерироватьЗаявкиНажатие(Элемент)
   // Вставить содержимое обработчика.
   УстановитьПривилегированныйРежим(Истина);
 

   лНомерЗаявки="";
   лЗаказКлиента=Неопределено;
   лЗаказКлиента1=Неопределено;
   
   ФормаПоступления =Неопределено;
   
   Для каждого лСтрока из СписокЗаявок Цикл
      Если лНомерЗаявки<>лСтрока.ORDERID Тогда
         Сообщить("Новый заказ клиента");
         Сообщить(лСтрока.ORDERID);
         
         // Документ уже сгенерирован, записываем его
         Если ФормаПоступления<>Неопределено Тогда
            
            СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
            лЗаказКлиента.Контрагент, лЗаказКлиента.ТипЦен, лЗаказКлиента.ДоговорКонтрагента, лЗаказКлиента.Дата,лЗаказКлиента.ВалютаДокумента, лЗаказКлиента.УчитыватьНДС,лЗаказКлиента.СуммаВключаетНДС);
            
            
            
            Для Каждого лСтрокаПересчет из  ФормаПоступления.Товары Цикл
               
               ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(лСтрокаПересчет,ФормаПоступления.ЭтаФорма, СтруктураШапкиДокумента, лЗаказКлиента.ВалютаДокумента);
               ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
               ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
               ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
               
               
               Если лСтрокаПересчет.Цена = 0 Тогда
                  Сообщить("Не удалось найти цену поставщика для номенклатуры="+лСтрокаПересчет.Номенклатура);
               КонецЕсли;   
               
            КонецЦикла;   
            
            
            // Теперь пробуем записать документ            
            Попытка
               ФормаПоступления.ЗаписатьВФорме(РежимЗаписиДокумента.Запись);
               ФормаПоступления=Неопределено;
               лЗаказКлиента=Неопределено;
            Исключение
               Сообщить(ОписаниеОшибки());
               ФормаПоступления=Неопределено;
            КонецПопытки;   
            
            
            
         КонецЕсли;   
         
         
         
         Если лЗаказКлиента=Неопределено  Тогда
            Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("НачПериода", ?(ДатаДок = Дата(1, 1, 1),'19800101'  , НачалоДня(ДатаДок)));
      Запрос.УстановитьПараметр("КонПериода",?(ДатаДок = Дата(1, 1, 1),'20200101'  , КонецДня(ДатаДок)));
             
      
      
               Запрос.Текст = "ВЫБРАТЬ Разрешенные
            |   ЗаказПокупателя.Ссылка КАК Док

            |ИЗ
            |   Документ.ЗаказПокупателя КАК ЗаказПокупателя
            |ГДЕ
            |   ЗаказПокупателя.Проведен = ИСТИНА
            |   И ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода
            |УПОРЯДОЧИТЬ ПО
            |   ЗаказПокупателя.Дата";
                     
            Результат = Запрос.Выполнить();
            Выборка = Результат.Выбрать();
            
            
            
            Пока Выборка.Следующий() Цикл  // выборка по списку
                           
               ОбработкаПрерыванияПользователя();   
               состояние("Обработка: " + выборка.Док);
               
               ДокОбъект = выборка.док.ПолучитьОбъект();
            КонецЦикла;         
   
            лДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоРеквизиту("CLIENTID",лСтрока.CLIENTID);
         
            Если лДоговорКонтрагента=Справочники.ДоговорыКонтрагентов.ПустаяСсылка() Тогда
               Сообщить("Не найден магазин с кодом="+лСтрока.CLIENTID);
               Прервать;
            КонецЕсли;   
            
                         //  и  ДокОбъект<>лДоговорКонтрагента
            лЗаказКлиента=НайтиЗаявкуПоID(ДатаДок,лСтрока.ORDERID);
            
            Если лЗаказКлиента=Неопределено    Тогда
               лЗаказКлиента = Документы.ЗаказПокупателя.СоздатьДокумент();
                    
               лЗаказКлиента.Дата = ДатаДок;
               лЗаказКлиента.ДатаОтгрузки = ПолучитьДатуИзСтроки(лСтрока.DELIVERY_DATE);
               лЗаказКлиента.Организация = Организация;
            //   лЗаказКлиента.Ответственный
            //   лЗаказКлиента.Ответственный = ПараметрыСеанса.ТекущийПользователь;
               // лЗаказКлиента.Подразделение.Наименование =   "1 Дистрибьюция";
               лЗаказКлиента.Контрагент = лДоговорКонтрагента.Владелец;
               лЗаказКлиента.Грузополучатель= лДоговорКонтрагента.Владелец;
                                                                 
               лЗаказКлиента.ДоговорКонтрагента = лДоговорКонтрагента;
               лЗаказКлиента.ВалютаДокумента = лДоговорКонтрагента.ВалютаВзаиморасчетов;
               лЗаказКлиента.ТипЦен = лДоговорКонтрагента.ТипЦен;
               лЗаказКлиента.УчитыватьНДС = Истина;
               лЗаказКлиента.СуммаВключаетНДС = Истина;
               Курс   = МодульВалютногоУчета.ПолучитьКурсВалюты(лЗаказКлиента.ВалютаДокумента, ДатаДок);
               лЗаказКлиента.КурсВзаиморасчетов      = Курс.Курс;
               лЗаказКлиента.КратностьВзаиморасчетов = Курс.Кратность;
         
            
                           //лЗаказ.ОтражатьВУправленческомУчете = Истина;
               //лЗаказ.ОтражатьВБухгалтерскомУчете = Истина;
               //лЗаказ.ОтражатьВНалоговомУчете = Истина;
               
               лЗаказКлиента.СкладГруппа         = Склад;
               
               лЗаказКлиента.ORDERID =лСтрока.ORDERID;
               лЗаказКлиента.Записать();
               ФормаПоступления = лЗаказКлиента.ПолучитьФорму();
               
            Иначе
               //лЗаказКлиента1 = Документы.ЗаказПокупателя.ПолучитьОбъект();
               //Если лЗаказКлиента.Проведен = 1 Тогда   
               //   Перейти ~М2;
               //КонецЕсли;
                   
   //Запрос = Новый Запрос("ВЫБРАТЬ
   //                 |   ДоговорКонтрагента.Ссылка,
   //                 |   ДоговорКонтрагента.CLIENTID,
   //                 |   ДоговорКонтрагента.Наименование,
   //                 |   ДоговорКонтрагента.Маршрут,
   //                 |ИЗ
   //                 |   Справочник.ДоговорКонтрагента КАК ДоговорКонтрагента
   //                 |ГДЕ
   //                 |   ДоговорКонтрагента.Наименование
                      
      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   
 
 
 
//

//    Код_агента = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Код_агента");
//   
//      Объект = Справочники.ФизическиеЛица.НайтиПоНаименованию("Агеева Марина Николаевна");

//   Запрос = Новый Запрос;
//   Запрос.Текст =
//      "ВЫБРАТЬ
//      |   ЗначенияСвойствОбъектов.Значение
//      |ИЗ
//      |   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
//      |ГДЕ
//      |   ЗначенияСвойствОыбъектов.Объект = &Объект
//      |   И ЗначенияСвойствОбъектов.Свойство = &Свойство";

//   Запрос.УстановитьПараметр("Объект", Объект);
//   Запрос.УстановитьПараметр("Свойство", Код_агента);


//Выборка = Запрос.Выполнить().Выбрать();
//Пока Выборка.Следующий() Цикл
// 
//   Сообщить("SV-ag: "+Выборка.Значение);
//КонецЦикла;   





               ФормаПоступления = лЗаказКлиента.ПолучитьФорму();
               ФормаПоступления.Контрагент = лДоговорКонтрагента.Владелец;
               ФормаПоступления.ДоговорКонтрагента = лДоговорКонтрагента;
               ФормаПоступления.ВалютаДокумента = лДоговорКонтрагента.ВалютаВзаиморасчетов;
               ФормаПоступления.ТипЦен = лДоговорКонтрагента.ТипЦен;
               ФормаПоступления.СкладГруппа         = Склад;
                              ФормаПоступления.Организация = Организация;
                ФормаПоступления.Грузополучатель = лДоговорКонтрагента.Владелец;
                             Выбока = Справочники.Подразделения.НайтиПоКоду("000000007");
                 ФормаПоступления.Подразделение = Выбока;
                               ПВХ = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Маршрут");
                   
      //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   Объект = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(лДоговорКонтрагента);

   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ

      |   ЗначенияСвойствОбъектов.Значение

      |ИЗ
      |   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
      |ГДЕ
      |   ЗначенияСвойствОбъектов.Объект = &Объект
      |   И ЗначенияСвойствОбъектов.Свойство = &Свойство";

   Запрос.УстановитьПараметр("Объект", Объект);
   Запрос.УстановитьПараметр("Свойство", ПВХ);
     




Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл


  // Сообщить("SV: "+Выборка.Значение);
                              Выбока = Справочники.Маршруты.НайтиПоНаименованию( Выборка.Значение);
                 ФормаПоступления.Маршрут = Выбока;
                 

КонецЦикла;   
                      
         
                                           

                  
                  

 

//ФормаПоступления.Маршрут = "";

                       ТекДата = ТекущаяДата();

                       ФормаПоступления.Комментарий = "№ " +лЗаказКлиента.ORDERID+" "+"Дата З: "+Формат(ТекДата,"ДЛФ=DD")+" Отв:"+лСтрока.SALES_REPID;
//   ФормаПоступления.Ответственный = ПараметрыСеанса.ТекущийПользователь;
                            //      лЗаказКлиента.Подразделение =   "";

               
               ФормаПоступления.Товары.Очистить();
               
            КонецЕсли;
            ~М2:
            
            лСтрока.ЗаказКлиента =лЗаказКлиента.Ссылка;
            
            
            
         КонецЕсли;
         
         
         лНомерЗаявки=лСтрока.ORDERID;
         
      КонецЕсли;   
      
      // Добавляем строки в заказ клиента
            //Если лЗаказКлиента.Проведен <> 1 Тогда
         лСтрокаТовары = ФормаПоступления.Товары.Добавить();
                      
       Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|   Номенклатура.Ссылка
|ИЗ
|   Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|   Номенклатура.Ссылка В ИЕРАРХИИ(&КокаКола)";
ГруппаСправочника = Справочники.Номенклатура.НайтиПоРеквизиту("ЮнимилкКод",лСтрока.PRODUCT_CODE);

Запрос.УстановитьПараметр("КокаКола",ГруппаСправочника );
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

   
 


             Пока Выборка.Следующий() Цикл

       

         лСпрНом=Справочники.Номенклатура.НайтиПоРеквизиту("ЮнимилкКод",лСтрока.PRODUCT_CODE);
          КонецЦикла;
         Если лСпрНом=Справочники.Номенклатура.ПустаяСсылка() Тогда
            Сообщить("Не найдена номенклатура с кодом="+лСтрока.PRODUCT_CODE);                
            Прервать;
         КонецЕсли;
         лСтрокаТовары.Номенклатура=лСпрНом;
         лСтрокаТовары.ЕдиницаИзмерения = лСпрНом.ЕдиницаХраненияОстатков;
         лСтрокаТовары.Коэффициент=лСпрНом.ЕдиницаХраненияОстатков.Коэффициент;
         //лСтрокаТовары.Количество = лКолВоМест*Фасовка+лКолВоШт;
         Если  лСтрока.QTY_BOTTLES ="0" Тогда
            лСтрокаТовары.ПроцентСкидкиНаценки=100;
            лСтрокаТовары.Количество=лСтрока.FREE_CASE*лСпрНом.ЕдиницаДляОтчетов.Коэффициент;
         Иначе
            лСтрокаТовары.Количество=лСтрока.QTY_BOTTLES;
         конецесли;
         
         ФлагУчитыватьНДС=  Истина;                               
         Если ФлагУчитыватьНДС Тогда
            лСтрокаТовары.СтавкаНДС = лСпрНом.СтавкаНДС;
         КонецЕсли;
         
         Если  лСтрока.FREE_CASE <>"0" и лСтрока.QTY_CASES <>"0" Тогда
            лСтрокаТовары = ФормаПоступления.Товары.Добавить();
            лСтрокаТовары.Номенклатура=лСпрНом;
            лСтрокаТовары.ЕдиницаИзмерения = лСпрНом.ЕдиницаХраненияОстатков;
            лСтрокаТовары.Коэффициент=лСпрНом.ЕдиницаХраненияОстатков.Коэффициент;
            лСтрокаТовары.ПроцентСкидкиНаценки=100;
            лСтрокаТовары.Количество=лСтрока.FREE_CASE*лСпрНом.ЕдиницаДляОтчетов.Коэффициент;
                Если ФлагУчитыватьНДС Тогда
               лСтрокаТовары.СтавкаНДС = лСпрНом.СтавкаНДС;
            КонецЕсли;


            
         КонецЕсли;

      //КонецЕсли;
      
      
      
   КонецЦикла;   
   
   // Записываем последнюю заявку
   // Теперь пробуем записать документ            
   // Документ уже сгенерирован, записываем его
   
   
         Если ФормаПоступления<>Неопределено Тогда
      
      СтруктураШапкиДокумента = Новый Структура("Контрагент, ТипЦен, ДоговорКонтрагента, ДатаДокумента, ВалютаДокумента, УчитыватьНДС, СуммаВключаетНДС",
      лЗаказКлиента.Контрагент, лЗаказКлиента.ТипЦен, лЗаказКлиента.ДоговорКонтрагента, лЗаказКлиента.Дата,лЗаказКлиента.ВалютаДокумента, лЗаказКлиента.УчитыватьНДС,лЗаказКлиента.СуммаВключаетНДС);
      
                              
      Для Каждого лСтрокаПересчет из  ФормаПоступления.Товары Цикл
         
         ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(лСтрокаПересчет,ФормаПоступления.ЭтаФорма, СтруктураШапкиДокумента, лЗаказКлиента.ВалютаДокумента);
         ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
         ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
         ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(лСтрокаПересчет, ФормаПоступления.ЭтаФорма);
            

                  
         Если лСтрокаПересчет.Цена = 0 Тогда
            Сообщить("Не удалось найти цену поставщика для номенклатуры="+лСтрокаПересчет.Номенклатура);
         КонецЕсли;   
         
      КонецЦикла;   
      
      // Теперь пробуем записать документ            
      Попытка
   

         ФормаПоступления.ЗаписатьВФорме(РежимЗаписиДокумента.Запись);
         ФормаПоступления=Неопределено;
         лЗаказКлиента=Неопределено;
      Исключение
         Сообщить(ОписаниеОшибки());
         ФормаПоступления=Неопределено;
      КонецПопытки;   

   КонецЕсли;   
   
КонецПроцедуры


Теги:
 

Как создать нескольких документов "расчет при увольнении" на основании кадрового документа "увольнение" как Отпуска

Автор cozuРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 3426
Последний ответ 21 Мар 2015, 20:24
от дфтын
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4222
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
готовая компонента сканирования/загрузки / распознавания бумажных документов (счетов, налоговых накладных, приходных накладных) из бумажного документа в 1с

Автор Св ЧРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 310
Последний ответ 14 Ноя 2017, 10:43
от oleg-x
Реквизит "Ссылка" у справочников и документов

Автор leklerkРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3231
Последний ответ 29 Май 2013, 16:24
от leklerk
"Дубляж" документов реализации в ВзаиморасчетыКомпанииОстаткиИОбороты

Автор mspuzРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1864
Последний ответ 24 Янв 2014, 13:55
от mspuz

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
189 Сообщений
AIFrame AIFrame
81 Сообщений
alexandr_ll
41 Сообщений
BuhRust
29 Сообщений
wise wise
27 Сообщений
oleg-x
26 Сообщений
MuI_I_Ika MuI_I_Ika
25 Сообщений
pavl_vs
22 Сообщений
Кейли Кейли
21 Сообщений
andron81_81
20 Сообщений

* Кто онлайн

  • Точка Гостей: 156
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal