7.7 Как в конфигураторе посмотреть по каким регистрам движется документ?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Vitalik85, 11 фев 2014.

  1. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте. Как в 1С 7.7 в конфигураторе посмотреть по каким регистрам будет движение документов. В 8-ке все понятно, а в 7-ке искал не нашел.
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Модуль документа --> ОбработкаПроведения...
    Что-то типа:
    Код:
    Регистр.КакойТоРегистр.ДвижениеРасходВыполнить();
    ////или
    Регистр.КакойТоРегистр.ДвижениеПриходВыполнить();
  3. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    В том то и дело что у необходимого документа зашел в Модуль документа, нашел ОбработкаПроведения а по слову Регистр и ДвижениеПриходВыполнить вообще ничего не находит.
  4. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Покажите код, возможно в ГлобальномМодуле отрабатывается или еще как-нибудь...
  5. TopicStarter Overlay
    Vitalik85
    Offline

    Vitalik85 Опытный в 1С

    Регистрация:
    29 мар 2011
    Сообщения:
    147
    Симпатии:
    0
    Баллы:
    26
    Код:
    ОбработкаПроведения()
    Процедура ОбработкаПроведения()
    
    // Проверка права доступа к данным
    Если глПроверкиПравПриПроведенииДокумента(Контекст)=0 Тогда
    Возврат;
    КонецЕсли;
    Если Найти(Врег(Константа.НазваниеОрганизации), "ВОРОНЕЖ") = 0 Тогда
    Если ТекущийДокумент().Проведен() = 1 Тогда
    Сообщить("Сначала документ надо распровести");
    СтатусВозврата(0);Возврат;
    КонецЕсли;
    КонецЕсли;
    
    Если ДобавитьЗатраты = 1 Тогда
    Если ПустоеЗначение(ДокПарт) = 1 Тогда
    глНеПроводить(Контекст, "Необходимо выбрать документ партии");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    Если Контрагент.Выбран() = 0 Тогда
    глНеПроводить(Контекст, "Не задан поставщик.");
    Возврат;
    КонецЕсли;
    
    Если Договор.Выбран() = 0 Тогда
    глНеПроводить(Контекст, "Не задан договор.");
    Возврат;
    КонецЕсли;
    
    
    Если (Договор.НалоговыйАгент = 0) или ((Договор.НалоговыйАгент = 1) и (Договор.СчетАгента = СчетПоКоду("60.1"))) Тогда
    Если (ВидНоменклатуры.Выбран() = 0) и (UID_SAP = "") Тогда
    глНеПроводить(Контекст, "Не задан вид услуг.");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    Если (Договор.НалоговыйАгент = 1) и ((Договор.СчетАгента = СчетПоКоду("76.6")) или (Договор.СчетАгента = СчетПоКоду("76.60.1"))) Тогда
    Если ВидыПрочихРасчетов.Выбран() = 0 Тогда
    глНеПроводить(Контекст, "Не задан вид прочих расчетов");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    Если Проведен() = 1 Тогда
    ОбработкаУдаленияПроведения();
    Если СтатусВозврата() = 0 Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    //Если (СтавкаНДС = глБезНалога("НДС")) и (ПустоеЗначение(ОперацииНеОблагаемыеНДС) = 1) Тогда
    // глНеПроводить(Контекст, "Не выбрана операция не облагаемая налогом, проведение невозможно");
    // Возврат;
    //КонецЕсли;
    
    Константа_ВедениеСчет42 = глПолучитьКонстанту("ВедениеСчет42", Фирма);
    
    Константа_НазваниеОрганизации = глПолучитьКонстанту("НазваниеОрганизации", Фирма);
    Есть_САМАРА = ?(Найти(Врег(Константа_НазваниеОрганизации), "САМАРА") > 0, 1, 0);
    
    ИтогНДС   = 0;
    ИтогСумма = 0;
    Если Договор.НалоговыйАгент = 1 Тогда //блок налогового агента в договорах
    Если (ДатаДок >= Константа.ДатаНачалаИспользованияСчетов76х) и (ПустоеЗначение(Константа.ДатаНачалаИспользованияСчетов76х) = 0) Тогда
    Если (Договор.СчетАгента <> СчетПоКоду("76.60.1")) и (Договор.СчетАгента <> СчетПоКоду("60.1")) Тогда
    глНеПроводить(Контекст, "Счет для расчетов с налоговым агентом может быть только 76.60.1 или 60.1");
    Возврат;
    КонецЕсли;
    Иначе
    Если (Договор.СчетАгента <> СчетПоКоду("76.6")) и (Договор.СчетАгента <> СчетПоКоду("60.1")) Тогда
    глНеПроводить(Контекст, "Счет для расчетов с налоговым агентом может быть только 76.6 или 60.1");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    //Исключаем по реквизиту Налоговый агент проводку Н68.2В
    блок = 0;
    
    Если Договор.СчетАгента = СчетПоКоду("76.6") Тогда
    врСубконто2 = Договор;
    врСубконто3 = ВидыПрочихРасчетов;
    Если ВидыПрочихРасчетов.НалоговыйАгент <> Перечисление.Булево.Да Тогда
    блок = 1;
    КонецЕсли;
    ИначеЕсли Договор.СчетАгента = СчетПоКоду("76.60.1") Тогда
    врСубконто2 = ВидыПрочихРасчетов;
    Если ВидыПрочихРасчетов.НалоговыйАгент <> Перечисление.Булево.Да Тогда
    блок = 1;
    КонецЕсли;
    врСубконто3 = Договор;
    ИначеЕсли Договор.СчетАгента = СчетПоКоду("60.1") Тогда
    врСубконто2 = ВидНоменклатуры;
    Если ВидНоменклатуры.НалоговыйАгент <> Перечисление.Булево.Да Тогда
    блок = 1;
    КонецЕсли;
    врСубконто3 = Договор;
    КонецЕсли;
    
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    
    Если СуммаВключаетНДС = 1 Тогда
    ИтогСумма = ИтогСумма + (Сумма - НДС);
    Иначе
    ИтогСумма = ИтогСумма + Сумма;
    КонецЕсли;
    ИтогНДС =ИтогНДС + НДС;
    
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, Договор.СчетАгента, Контрагент, врСубконто2, врСубконто3, Количество, Сумма, "Налоговый агент", "06");
    Если блок = 0 Тогда
    глПроводка(Операция,"Н68.2В", Контрагент,Договор,ТекущийДокумент(),,,,,,НДС,"Налоговый агент","НДС");
    
    Операция.Дебет.СтавкаНДС = СтавкаНДС;
    Операция.ВалСумма = Сумма;
    Иначе
    Врем = Сумма - ?(СуммаВключаетНДС = 1, НДС, 0);
    глПроводка(Операция, "19.3", Контрагент, ТекущийДокумент(), ВидНоменклатуры,Договор.СчетАгента, Контрагент, врСубконто2, врСубконто3, Количество, НДС, "Выделен НДС", "06");  
    Операция.СтавкаНДС = СтавкаНДС;
    
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.3",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;
    Если ОтключениеФормированияНУ = 0 Тогда
    Если (КоррСчет = СчетПоКоду("20")) или
    (КоррСчет = СчетПоКоду("23")) или  
    (КоррСчет = СчетПоКоду("26")) или  
    (КоррСчет = СчетПоКоду("29")) или  
    (КоррСчет = СчетПоКоду("44"))
    Тогда
    врСп = СоздатьОбъект("СписокЗначений");
    врСп.ДобавитьЗначение(КоррСчет, "Счет");
    врСп.ДобавитьЗначение(Субконто1, "Субконто1");
    врСп.ДобавитьЗначение(Субконто2, "Субконто2");
    врСп.ДобавитьЗначение(Субконто3, "Субконто3");
    ФормированиеРасходовНУ(Контекст, врСп, Сумма);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    Иначе
    
    Если НалоговыйАгент = 1 Тогда	
    Налогопр = ВерниНалогиИОтчисления();
    ОснПодр  = глПолучитьКонстанту("ГоловноеПодразделениеДляЦелейНалогообложения", Фирма);
    ОснИМНС  = глПолучитьКонстанту("ГНИОрганизации", Фирма);
    КонецЕсли;
    
    // Для печати сч-факт сгруппированных по клиентам
    
    ПеревыставлениеПроц();
    
    ДокУСО = СоздатьОбъект("Документ.УслугиСтороннихОрганизаций");
    
    Если (Фактуровка = 1) и (ПустоеЗначение(ДокФактур) = 0) Тогда
    ДокУСО.НайтиДокумент(ДокФактур);
    ДокУСО.НеФактур = 0; //снимаем флаг нефактурированной поставки
    ДокУСО.ДатаСоздания = ТекущаяДата();
    ДокУСО.Записать();
    КонецЕсли;
    
    Если ТипДокумента = 0 Тогда
    счРасч = "60.1";
    Субк1 = Контрагент;
    Субк2 = ВидНоменклатуры;
    Субк3 = Договор;
    ИначеЕсли ТипДокумента = 1 Тогда
    Субк1 = Контрагент;
    //Если (ДатаДок >= Константа.ДатаНачалаИспользованияСчетов76х) и (ПустоеЗначение(Константа.ДатаНачалаИспользованияСчетов76х) = 0) Тогда
    // счРасч = "76.60.1";
    // Субк2 = ВидыПрочихРасчетов;
    //Иначе
    // счРасч = "76.6";
    // Субк2 = Договор;
    // Субк3 = ВидыПрочихРасчетов;
    //КонецЕсли;
    счРасч = "76.6";
    Субк2 = Договор;
    Субк3 = ВидыПрочихРасчетов;
    ИначеЕсли ТипДокумента = 2 Тогда
    счРасч = "76.60.1";
    Субк2 = ВидыПрочихРасчетов;
    Субк3 = Договор;
    ИначеЕсли ТипДокумента = 3 Тогда
    счРасч = "76.68";
    Субк1 = Подразделение;
    Субк2 = Контрагент;
    Субк3 = Налог;
    КонецЕсли;
    
    //конец обработки перевыставлений
    
    Если ПустоеЗначение(ДокПарт) = 0 Тогда
    ОперПарт = СоздатьОбъект("Операция");
    ОперПарт.НайтиОперацию(ДокПарт);
    КонецЕсли;
    
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Если (КоррСчет = СчетПоКоду("41.1")) или (КоррСчет = СчетПоКоду("41.2")) или (КоррСчет = СчетПоКоду("41.5")) Тогда
    Если (НеФактур = 1) или (Фактуровка = 1) Тогда
    глНеПроводить(Контекст, "Для нефактурированных поставок товара используйте документ Поступление НП (Опт неотфактурованное)");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    Если СуммаВключаетНДС = 1 Тогда
    ИтогСумма = ИтогСумма + (Сумма - НДС);
    Иначе
    ИтогСумма = ИтогСумма + Сумма;
    КонецЕсли;
    ИтогНДС =ИтогНДС + НДС;
    
    Если Перевыставление = Перечисление.Булево.Да Тогда
    Продолжить;
    КонецЕсли;
    Если КорректировкаСФ <>0 Тогда
    Если ЕстьИзменение <> Перечисление.Булево.Да Тогда
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    Врем = Сумма - ?(СуммаВключаетНДС = 1, НДС, 0);
    Если Врем <> 0 Тогда
    Если Фактуровка = 0 Тогда //
    Если ТипЗначенияСтр(Субконто1) = "Справочник" Тогда
    Если Субконто1.Вид() = "ВнеоборотныеАктивы" Тогда
    Если КоррСчет = СчетПоКоду("07.03") Тогда
    глПроводка(Операция, "700.6",, ТекущийДокумент(), Субконто1,,,,, Количество, Врем, "ТЗР к оборудованию", "ВА");
    Операция.Дебет.СтатьиЗатратНаСтроительство = Субконто2;
    Операция.ВалСумма = НДС;
    Операция.СтрокаДок = НомерСтроки;
    
    // По ТЗР к оборудованию НДС возмещается в месяце поступления.
    //Если ДатаДок > Дата("31.03.2010") Тогда
    // Если Субконто1.УчетнаяГруппа.ВозмещениеНДСпоСФ <> Перечисление.Булево.Да Тогда
    //  глПроводка(Операция,"080.1",ТекущийДокумент(),Субконто1,,,,,,,Врем,"Блокировка НДС","КП");
    //  глПроводка(Операция,"080.2",ТекущийДокумент(),,,,,,,,НДС,"Блокировка НДС","КП");
    // КонецЕсли;
    //КонецЕсли;
    Иначе
    Если КоррСчет = Субконто1.УчетнаяГруппа.СчетУчетаЗатраты Тогда
    глПроводка(Операция, "700.2",, ТекущийДокумент(), Субконто1,,,,, Количество, Врем, "", "ВНА");
    Операция.Дебет.МестаХранения = Субконто2;
    Операция.Дебет.СтатьиЗатратНаСтроительство = Субконто3;
    Операция.ВалСумма = НДС;
    Операция.СтрокаДок = НомерСтроки;
    Если ДатаДок > Дата("31.03.2010") Тогда
    Если Субконто1.УчетнаяГруппа.ВозмещениеНДСпоСФ <> Перечисление.Булево.Да Тогда
    глПроводка(Операция,"080.1",ТекущийДокумент(),Субконто1,,,,,,,Врем,"Блокировка НДС","КП");
    глПроводка(Операция,"080.2",ТекущийДокумент(),,,,,,,,НДС,"Блокировка НДС","КП");
    КонецЕсли;
    КонецЕсли;
    
    ИначеЕсли КоррСчет = Субконто1.УчетнаяГруппа.СчетМонтажЗатраты Тогда
    глПроводка(Операция, "700.4",, ТекущийДокумент(), Субконто1,,,,, Количество, Врем, "", "ВНА");
    Операция.Дебет.МестаХранения = Субконто2;
    Операция.Дебет.СтатьиЗатратНаСтроительство = Субконто3;
    Операция.ВалСумма = НДС;		
    Операция.СтрокаДок = НомерСтроки;
    Если ДатаДок > Дата("31.03.2010") Тогда
    Если Субконто1.УчетнаяГруппа.ВозмещениеНДСпоСФ <> Перечисление.Булево.Да Тогда
    глПроводка(Операция,"080.1",ТекущийДокумент(),Субконто1,,,,,,,Врем,"Блокировка НДС","КП");
    глПроводка(Операция,"080.2",ТекущийДокумент(),,,,,,,,НДС,"Блокировка НДС","КП");
    КонецЕсли;
    КонецЕсли;
    
    Иначе
    Сообщить("Не найдено соответствие счетам учета данных ВНА в учетной группе", "!!");
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    врСодержаниеПроводки = ?(ПустоеЗначение(НаименованиеУслуги) = 1, Строка(Субконто1), НаименованиеУслуги);
    Если (КоррСчет = СчетПоКоду("91.1")) или (КоррСчет = СчетПоКоду("91.2")) Тогда
    Если НеФактур = 0 Тогда
    Если (Фактуровка = 0) Тогда
    //глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.1", Контрагент, ВидНоменклатуры, Договор, Количество, Врем, НаименованиеУслуги, "06");  
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, счРасч, Субк1, Субк2, Субк3, Количество, Врем, НаименованиеУслуги, "06");  
    Операция.СтрокаДок = НомерСтроки;
    
    ИначеЕсли (Фактуровка = 1) и (ПустоеЗначение(ДокФактур) = 0) Тогда
    глПроводка(Операция, "60.4", Контрагент, ВидНоменклатуры, Договор, счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    Операция.Дебет.СчетаФактурыПолученные = ДокФактур;
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок = НомерСтроки;
    
    ДокФактур.ПолучитьСтрокуПоНомеру(НомерСтроки);
    ВремДокФактур = ДокФактур.Сумма - ?(ДокФактур.СуммаВключаетНДС = 1, ДокФактур.НДС, 0);
    РазницаЗатрат = Врем - ВремДокФактур;
    
    Если РазницаЗатрат > 0 Тогда //если мы приняли затрат меньше чем по документам нам пришло. Увеличиваем затраты
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, счРасч, Субк1, Субк2, Субк3, Количество, РазницаЗатрат, врСодержаниеПроводки, "06");
    Операция.Дебет.СчетаФактурыПолученные = ДокФактур;
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    ИначеЕсли РазницаЗатрат < 0 Тогда
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, РазницаЗатрат, врСодержаниеПроводки, "06");
    Операция.Дебет.СчетаФактурыПолученные = ДокФактур;
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    КонецЕсли;
    КонецЕсли;
    
    Иначе
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, Врем, НаименованиеУслуги, "06");  
    Операция.Кредит.СчетаФактурыПолученные = ТекущийДокумент();
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    КонецЕсли;
    Если НеФактур = 0 Тогда
    Если (КоррСчет = СчетПоКоду("91.2")) и (ТипЗначенияСтр(Субконто1) = "Справочник") Тогда
    Если Субконто1.Вид() = "ВидыПрочихРасходов" Тогда
    Если Субконто1.ГруппыВПР.Код = "00005" Тогда
    глПроводка(Операция, "Н91.2.2", Субконто1, Субконто2, Субконто3,,,,, Количество, Врем, НаименованиеУслуги, "06");  
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Иначе
    // обработка ВР
    КонецЕсли;
    
    Иначе
    Если НеФактур = 0 Тогда
    Если (Фактуровка = 0) Тогда
    Если (КоррСчет = СчетПоКоду("41.1")) или (КоррСчет = СчетПоКоду("41.2")) или (КоррСчет = СчетПоКоду("43")) Тогда
    Если (КоррСчет = СчетПоКоду("41.1")) или (КоррСчет = СчетПоКоду("41.2")) Тогда
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    
    Иначе
    глПроводка(Операция, "20", ДокПарт.СтатьяЗатрат, ДокПарт.НаправлениеДеятельности, ДокПарт.МестоХранения.Подразделение,
    счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3,
    "20", ДокПарт.СтатьяЗатрат, ДокПарт.НаправлениеДеятельности, ДокПарт.МестоХранения.Подразделение,
    Количество, Врем, врСодержаниеПроводки, "06");
    КонецЕсли;
    
    Если (КоррСчет = СчетПоКоду("41.1")) или (КоррСчет = СчетПоКоду("41.2")) Тогда
    текНоменклатура = Субконто1;
    текМХ = Субконто2;
    Иначе  // 43
    текМХ = Субконто1;
    текНоменклатура = Субконто2;
    КонецЕсли;
    
    Если Лев(КоррСчет.Код,2) = "41" Тогда
    ОперПарт.ВыбратьПроводки();
    Пока ОперПарт.ПолучитьПроводку() = 1 Цикл
    ДебетПарт = ОперПарт.Дебет;
    Если ДебетПарт.Счет = КоррСчет Тогда
    Если (ДебетПарт.Номенклатура = текНоменклатура) и
    (ДебетПарт.МестаХранения = текМХ)
    Тогда
    Операция.СтрокаДок = ОперПарт.СтрокаДок;
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    
    СУ_Парт = "";
    Если (КоррСчет = СчетПоКоду("41.1")) или (КоррСчет = СчетПоКоду("43")) Тогда
    Если (текНоменклатура.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Нефтепродукт) и (СокрЛП(текНоменклатура.ВидНоменклатуры.ГруппыВН.Код) = "0000020") Тогда
    СУ_Парт = СчетПоКоду("ПТ.4");
    Иначе
    СУ_Парт = СчетПоКоду("ПТ.1");
    КонецЕсли;
    
    ИначеЕсли КоррСчет = СчетПоКоду("41.2") Тогда
    Если (текМХ.ТипСклада.Получить(ДатаДок) <> 0) или
    (Константа_ВедениеСчет42 <> Перечисление.Булево.Да) или
    (текМХ.СмешаннаяАгентскаяСхема = 1)
    Тогда // исключаем колич.-сум. учет товаров на АЗК в случае учета по продажным ценам
    СУ_Парт = СчетПоКоду("ПТ.2");
    КонецЕсли;
    КонецЕсли;
    
    Если ПустоеЗначение(СУ_Парт) = 0 Тогда
    
    глПроводка(Операция, СУ_Парт, текМХ, текНоменклатура, ДокПарт,,,,, , Сумма, "Партия", "");
    //  Операция.Валюта = глПолучитьКонстанту("ЕдиницаИзмеренияКоличества",Фирма);
    //  Операция.ВалСумма = _Колво;
    
    ОперПарт.ВыбратьПроводки();
    Пока ОперПарт.ПолучитьПроводку() = 1 Цикл
    ДебетПарт = ОперПарт.Дебет;
    Если (Лев(ДебетПарт.Счет.Код,2) = "ПТ")  Тогда
    Если (ДебетПарт.Номенклатура = текНоменклатура) и
    (ДебетПарт.МестаХранения = текМХ)
    Тогда
    Операция.Дебет.Цена = ДебетПарт.Цена;
    Если Лев(КоррСчет.Код,2) = "41" Тогда
    Операция.СтрокаДок  = ОперПарт.СтрокаДок;
    КонецЕсли;
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    Операция.СтавкаНДС  = СтавкаНДС;
    КонецЕсли;
    
    ИначеЕсли (КоррСчет = СчетПоКоду("41.5")) Тогда
    глПроводка(Операция, КоррСчет, Субконто1,,, счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    
    ОперПарт.ВыбратьПроводки();
    Пока ОперПарт.ПолучитьПроводку() = 1 Цикл
    Если (ОперПарт.Дебет.Счет) = СчетПоКоду("ТВП") Тогда
    Если ОперПарт.Дебет.Номенклатура  = Субконто1 Тогда
    НомСтрТВП = ОперПарт.СтрокаДок;
    Прервать;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    СУ_Парт = СчетПоКоду("ТВП");
    глПроводка(Операция, СУ_Парт, Субконто1,ДокПарт,НомСтрТВП,,,,, , Сумма, "Партия", "");
    
    //  Операция.Валюта = глПолучитьКонстанту("ЕдиницаИзмеренияКоличества",Фирма);
    //  Операция.ВалСумма = _Колво;
    ДокВПуть		  = СоздатьОбъект("Документ.Товары_ПоступлениеНП_Путь");
    ТекДок			= Операция.Документ.ТекущийДокумент();
    //ДокПарт.ДопУслуг  = ТекДок;
    Если ДокВПуть.НайтиДокумент(ДокПарт) = 1 Тогда
    // ДокВПуть		   = ДокВПуть.ТекущийДокумент();
    ДокВПуть.ДатаСоздания = ТекущаяДата();
    ДокВПуть.ДопУслуг  = ТекДок;
    ДокВПуть.Записать();
    КонецЕсли;
    
    Иначе
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    Операция.СтрокаДок = НомерСтроки;
    
    //  документ партии = Поступление НП и газа (транзит)
    Если КоррСчет = СчетПоКоду("41.9") Тогда
    СУ_Парт = СчетПоКоду("ПТТ.1");
    
    ОперПарт.ВыбратьПроводки();
    Пока ОперПарт.ПолучитьПроводку() = 1 Цикл
    Если (ОперПарт.Дебет.Счет = СУ_Парт) и (ОперПарт.СтрокаДок = НомерСтроки) Тогда
    СчФактПТТ=ОперПарт.Дебет.СчетаФактурыПолученные;
    ЦенаПТТ=ОперПарт.Дебет.Цена;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    глПроводка(Операция, СУ_Парт, Субконто1, СчФактПТТ, ЦенаПТТ,,,,, , Сумма, "Партия", "");
    Операция.СтрокаДок = НомерСтроки;
    КонецЕсли;
    КонецЕсли;
    
    ИначеЕсли (Фактуровка = 1) и (ПустоеЗначение(ДокФактур) = 0) Тогда
    глПроводка(Операция, "60.4", Контрагент, ВидНоменклатуры, Договор, счРасч, Субк1, Субк2, Субк3, Количество, Врем, врСодержаниеПроводки, "06");
    Операция.Дебет.СчетаФактурыПолученные = ДокФактур;
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок = НомерСтроки;
    
    ДокФактур.ПолучитьСтрокуПоНомеру(НомерСтроки);
    ВремДокФактур = ДокФактур.Сумма - ?(ДокФактур.СуммаВключаетНДС = 1, ДокФактур.НДС, 0);
    РазницаЗатрат = Врем - ВремДокФактур;
    
    Если РазницаЗатрат <> 0 Тогда
    //если мы приняли затрат меньше чем по документам нам пришло. Увеличиваем затраты
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, РазницаЗатрат, врСодержаниеПроводки, "06");
    Операция.Кредит.СчетаФактурыПолученные = ДокФактур;
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    КонецЕсли;
    //Иначе
    // глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, Врем, врСодержаниеПроводки, "06");
    // Операция.Кредит.СчетаФактурыПолученные = ТекущийДокумент();
    // Операция.Док		= ТекущийДокумент();
    // Операция.СтрокаДок  = НомерСтроки;
    КонецЕсли;
    
    Иначе
    глПроводка(Операция, КоррСчет, Субконто1, Субконто2, Субконто3, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, Врем, врСодержаниеПроводки, "06");
    Операция.Кредит.СчетаФактурыПолученные = ТекущийДокумент();
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    КонецЕсли;
    КонецЕсли;
    
    
    Операция.СтавкаНДС = СтавкаНДС;
    Если (КоррСчет = СчетПоКоду("20")) или
    (КоррСчет = СчетПоКоду("23")) или  
    (КоррСчет = СчетПоКоду("26")) или  
    (КоррСчет = СчетПоКоду("29")) или  
    (КоррСчет = СчетПоКоду("44"))
    Тогда
    Если НеФактур = 0 Тогда
    Если ОтключениеФормированияНУ = 0 Тогда
    врСп = СоздатьОбъект("СписокЗначений");
    врСп.ДобавитьЗначение(КоррСчет, "Счет");
    врСп.ДобавитьЗначение(Субконто1, "Субконто1");
    врСп.ДобавитьЗначение(Субконто2, "Субконто2");
    врСп.ДобавитьЗначение(Субконто3, "Субконто3");
    
    ФормированиеРасходовНУ(Контекст, врСп, Врем);
    КонецЕсли;
    //Самара требует отдельный алгоритм без временных разниц
    //Сначала неотфактурованные суммы загоняются на сч. П
    //при фактуровке списываются с П и проводятся на Н
    Если (Фактуровка = 1) Тогда
    ДокФактур.ПолучитьСтрокуПоНомеру(НомерСтроки);
    ВремДокФактур = ДокФактур.Сумма - ?(ДокФактур.СуммаВключаетНДС = 1, ДокФактур.НДС, 0);
    //убрано по заявке 32797
    //Если Есть_САМАРА > 0 Тогда
    // Если ОтключениеФормированияНУ = 0 Тогда
    //  врСп = СоздатьОбъект("СписокЗначений");
    //  врСп.ДобавитьЗначение(КоррСчет, "Счет");
    //  врСп.ДобавитьЗначение(Субконто1, "Субконто1");
    //  врСп.ДобавитьЗначение(Субконто2, "Субконто2");
    //  врСп.ДобавитьЗначение(Субконто3, "Субконто3");
    //  ФормированиеРасходовНУ(Контекст, врСп, -ВремДокФактур,,,"П");
    // КонецЕсли;	   Иначе
    // глПроводка(Операция, "ВР.НФ", Контрагент, Договор, ,,,,, Количество, -ВремДокФактур, НаименованиеУслуги, "06");	// обработка ВР
    // Операция.Док		= ДокФактур;
    //КонецЕсли;
    КонецЕсли;
    Иначе
    //убрано по заявке 32797
    //Если Есть_САМАРА > 0 Тогда
    // Если ОтключениеФормированияНУ = 0 Тогда
    //  врСп = СоздатьОбъект("СписокЗначений");
    //  врСп.ДобавитьЗначение(КоррСчет, "Счет");
    //  врСп.ДобавитьЗначение(Субконто1, "Субконто1");
    //  врСп.ДобавитьЗначение(Субконто2, "Субконто2");
    //  врСп.ДобавитьЗначение(Субконто3, "Субконто3");
    //  ФормированиеРасходовНУ(Контекст, врСп, Врем,,,"П");
    // КонецЕсли;
    //Иначе
    глПроводка(Операция, "ВР.НФ", Контрагент, Договор, ,,,,, Количество, Врем, НаименованиеУслуги, "06");	// обработка ВР
    Операция.Док		= ДокФактур;
    //КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    
    // НДС операции
    Если НДС <> 0 Тогда  
    Если (КоррСчет = СчетПоКоду("07.01")) или
    (КоррСчет = СчетПоКоду("07.02")) или
    (КоррСчет = СчетПоКоду("08.1")) или
    (КоррСчет = СчетПоКоду("08.3")) или
    (КоррСчет = СчетПоКоду("08.9")) или
    (КоррСчет = СчетПоКоду("08.4")) или
    (КоррСчет = СчетПоКоду("08.5"))
    Тогда
    Если НеФактур = 0 Тогда
    Если (Фактуровка = 0) Тогда
    глПроводка(Операция, "19.1", Контрагент, ТекущийДокумент(), ВидНоменклатуры, счРасч, Субк1, Субк2, Субк3, Количество, НДС, "Начислен НДС", "06");
    Операция.СтавкаНДС = СтавкаНДС;
    Операция.СтрокаДок = НомерСтроки;
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.1",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    
    ИначеЕсли (Фактуровка = 1) и (ПустоеЗначение(ДокФактур) = 0) Тогда
    ДокФактур.ПолучитьСтрокуПоНомеру(НомерСтроки);
    глПроводка(Операция, "19.1", Контрагент, ДокФактур, ВидНоменклатуры, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, -ДокФактур.НДС, "Сторно НДС", "06");
    Операция.Кредит.СчетаФактурыПолученные = ДокФактур;
    Операция.СтавкаНДС = СтавкаНДС;
    Операция.СтрокаДок = НомерСтроки;
    
    
    //Если ДатаДок> Дата("31.03.2010") Тогда
    // Если СобственныйНДС = 0 Тогда  
    //  глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    //  Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    //  Операция.ВалСумма = Врем;
    //  Операция.СтавкаНДС = СтавкаНДС;
    //  
    // Иначе
    //  спАтрибутов = НалоговыеАтрибуты();
    //  Статья = спАтрибутов.Получить("СтатьяРасходов");
    //  оснПодр = спАтрибутов.Получить("ОснПодр");
    //  ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.1",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    //  глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    //  Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    //  Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    //  Операция.ВалСумма = Врем;
    //  Операция.СтавкаНДС = СтавкаНДС;
    // КонецЕсли;
    //КонецЕсли;  
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,-Врем,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = - ДокФактур.Сумма;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.1",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,-Врем,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = - ДокФактур.Сумма;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    глПроводка(Операция, "19.1", Контрагент, ТекущийДокумент(), ВидНоменклатуры, счРасч, Субк1, Субк2, Субк3, Количество, НДС, "Начислен НДС", "06");
    Операция.СтавкаНДС = СтавкаНДС;
    Операция.СтрокаДок = НомерСтроки;
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.1",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    КонецЕсли;
    Иначе
    глПроводка(Операция, "19.1", Контрагент, ТекущийДокумент(), ВидНоменклатуры, "60.4", Контрагент, ВидНоменклатуры, Договор, Количество, НДС, "Начислен НДС", "06");
    Операция.Кредит.СчетаФактурыПолученные = ТекущийДокумент();
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    Операция.СтавкаНДС = СтавкаНДС;
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;  
    КонецЕсли;
    Иначе
    Если НеФактур = 0 Тогда
    Если (Фактуровка = 0) Тогда
    
    глПроводка(Операция, "19.3", Контрагент, ТекущийДокумент(), ВидНоменклатуры,счРасч, Субк1, Субк2, Субк3, Количество, НДС, "Начислен НДС", "06");  
    Операция.СтавкаНДС = СтавкаНДС;  
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.3",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    
    Если НалоговыйАгент = 1 Тогда
    глПроводка(Операция, "60.1", Контрагент, ВидНоменклатуры, Договор, "68.2", ОснПодр, ОснИМНС, Налогопр, Количество, НДС, "Начислен НДС налогового агента", "06");
    Операция.СтавкаНДС = СтавкаНДС;
    глПроводка(Операция, "080.2", ТекущийДокумент(),,,,,,, 1, НДС, "Блок НДС (налоговый агент)", "НДС");
    глПроводка(Операция,,,,, "080.3", ТекущийДокумент(),,, 1, НДС, "Блок НДС (налоговый агент)", "НДС");
    КонецЕсли;
    ИначеЕсли (Фактуровка = 1) и (ПустоеЗначение(ДокФактур) = 0) Тогда
    
    глПроводка(Операция, "19.3", Контрагент, ТекущийДокумент(), ВидНоменклатуры,"60.4", Контрагент, ВидНоменклатуры, Договор, Количество, -ДокФактур.НДС, "Сторно НДС", "06");  
    Операция.Кредит.СчетаФактурыПолученные = ДокФактур;
    Операция.СтавкаНДС = СтавкаНДС;
    
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,-ДокФактур.НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = - ДокФактур.Сумма;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.3",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,-ДокФактур.НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = - ДокФактур.Сумма;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    глПроводка(Операция, "19.3", Контрагент, ТекущийДокумент(), ВидНоменклатуры,счРасч, Субк1, Субк2, Субк3, Количество, НДС, "Начислен НДС", "06");  
    Операция.СтавкаНДС = СтавкаНДС;  
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.3",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    
    Если НалоговыйАгент = 1 Тогда
    глПроводка(Операция, "60.1", Контрагент, ВидНоменклатуры, Договор, "68.2", ОснПодр, ОснИМНС, Налогопр, Количество, НДС, "Начислен НДС налогового агента", "06");
    Операция.СтавкаНДС = СтавкаНДС;
    глПроводка(Операция, "080.2", ТекущийДокумент(),,,,,,, 1, НДС, "Блок НДС (налоговый агент)", "НДС");
    глПроводка(Операция,,,,, "080.3", ТекущийДокумент(),,, 1, НДС, "Блок НДС (налоговый агент)", "НДС");
    КонецЕсли;
    
    КонецЕсли;
    Иначе
    глПроводка(Операция, "19.3", Контрагент, ТекущийДокумент(), ВидНоменклатуры,"60.4", Контрагент, ВидНоменклатуры, Договор, Количество, НДС, "Начислен НДС", "06");  
    Операция.Кредит.СчетаФактурыПолученные = ТекущийДокумент();
    Операция.Док		= ТекущийДокумент();
    Операция.СтрокаДок  = НомерСтроки;
    Операция.СтавкаНДС = СтавкаНДС;  
    
    
    Если ДатаДок> Дата("31.03.2010") Тогда
    Если СобственныйНДС = 0 Тогда  
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС, ,,,,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    Иначе
    спАтрибутов = НалоговыеАтрибуты();
    Статья = спАтрибутов.Получить("СтатьяРасходов");
    оснПодр = спАтрибутов.Получить("ОснПодр");
    ГлПроводка(Операция,"91.8", Статья, оснПодр,,"19.3",Контрагент,ТекущийДокумент(),ВидНоменклатуры,1,НДС,"КП","НДС");
    глПроводка(Операция, "601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,"601.5",ТекущийДокумент(),Контрагент,СтавкаНДС,,НДС,"КП","НДС");
    Операция.Дебет.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.Кредит.ВидыНачисленияНДС = Перечисление.ВидыНачисленияНДС.Закупка;
    Операция.ВалСумма = Врем;
    Операция.СтавкаНДС = СтавкаНДС;
    КонецЕсли;
    КонецЕсли;  
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    КонецЕсли;
    
    Если Всего <> 0 Тогда
    Если (КоррСчет = СчетПоКоду("44")) Тогда
    Если ВознаграждениеУдерживаетсяИзВыручки = 1 Тогда
    глПроводка(Операция, "60.2", Контрагент, ВидНоменклатуры, Договор, "76.7", Контрагент, Договор, ВидНоменклатуры,, Всего, "Агентское вознаграждение", "06");  
    КонецЕсли;
    КонецЕсли;  
    КонецЕсли;
    
    //Если СуммаВключаетНДС = 1 Тогда
    // ИтогСумма = ИтогСумма + (Сумма - НДС);
    //Иначе
    // ИтогСумма = ИтогСумма + Сумма;
    //КонецЕсли;
    //ИтогНДС =ИтогНДС + НДС;
    
    КонецЦикла;
    КонецЕсли;
    
    табРем = СоздатьОбъект("ТаблицаЗначений");
    табРем.НоваяКолонка("ОС");
    табРем.НоваяКолонка("Вид");
    табРем.НоваяКолонка("Сумма");
    
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Если (ПустоеЗначение(ОсновноеСредство) = 0)
    и ((КоррСчет = СчетПоКоду("20")) или
    (КоррСчет = СчетПоКоду("23")) или  
    (КоррСчет = СчетПоКоду("26")) или  
    (КоррСчет = СчетПоКоду("29")) или  
    (КоррСчет = СчетПоКоду("44")) )
    и (ТипЗначенияСтр(Субконто1)="Справочник")
    Тогда
    табРем.НоваяСтрока();
    табРем.ОС = ОсновноеСредство.ТекущийЭлемент();
    Если Субконто1.ГруппаСтатейЗатрат.Код = "00040" Тогда
    табРем.Вид = Перечисление.ВидРемонта.Текущий;
    ИначеЕсли Субконто1.ГруппаСтатейЗатрат.Код = "00035" Тогда
    табРем.Вид = Перечисление.ВидРемонта.Капитальный;
    КонецЕсли;
    табРем.Сумма = Всего;
    КонецЕсли;
    КонецЦикла;
    табРем.Свернуть("ОС,Вид","Сумма");
    
    Если табРем.КоличествоСтрок()>0 Тогда
    спр = СоздатьОбъект("Справочник.ОС_Ремонты");
    НаименованиеРемонта = Метаданные.Документ(ТекущийДокумент().Вид()).Синоним;
    табРем.ВыбратьСтроки();
    Пока табРем.ПолучитьСтроку() = 1 Цикл
    спр.ИспользоватьВладельца(табРем.ОС);
    Если спр.НайтиПоРеквизиту("ДокументРемонта",ТекущийДокумент(),0) = 0 Тогда
    спр.Новый();
    КонецЕсли;
    спр.Наименование = НаименованиеРемонта;
    спр.ВидРемонта = ТабРем.Вид;
    спр.ДатаРемонта = ТекущийДокумент().ДатаДок;
    спр.НомерДокумРемонта = ТекущийДокумент().НомерДок;
    спр.ДокументРемонта = ТекущийДокумент();
    спр.СуммаЗатрат = табРем.Сумма;
    спр.Записать();
    КонецЦикла;
    КонецЕсли;
    
    Операция.Содержание = ?(ПустаяСтрока(Комментарий) = 1, "Услуги сторонних организаций", Комментарий);
    Операция.СуммаОперации = Итог("Всего");
    Операция.Исполнитель = глПользователь;
    Если ЗачитыватьАвансы = 1 Тогда
    гл_ОпертивноеЗакрытие(Операция,Контекст);
    КонецЕсли;
    
    ОформлениеЗабаланс60(Операция);
    
    гл_ВыборНДС(Операция, Контекст);
    
    глЗаписать(Операция);  
    
    МодификацияНалоговыхПроводок(Контекст);
    
    Если НеФактур = 0 Тогда
    Если СчетФактураПредъявлен = 1 Тогда
    
    Если ИтогСумма <> 0 Тогда
    СуммаСФ = ИтогСумма;
    НДССФ = ИтогНДС;
    ВсегоСФ = ИтогСумма + ИтогНДС;
    ИначеЕсли СуммаSAP <> 0 Тогда
    СуммаСФ = СуммаSAP;
    НДССФ = НДСSAP;
    ВсегоСФ = СуммаSAP + НДСSAP;
    Иначе
    СуммаСФ = 0; НДССФ = 0; ВсегоСФ = 0;
    КонецЕсли;
    
    Если глФормированиеСФПолученных(ТекущийДокумент(), НомерСчетаФактуры, СуммаСФ, НДССФ, ВсегоСФ) = 0 Тогда
    ТекстСообщения = "Невозможно сформировать СФ, проведение невозможно.";
    Сообщить(ТекстСообщения, "!");
    СтатусВозврата(0);
    Возврат;								  
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    КонецПроцедуры // ОбработкаПроведения
    
  6. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Смотрите глоб.модуль: ГлПроводка
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Будьте крайне осторожны... Судя по коду у этого модуля отсутствует автоматическая очистка движений....

Поделиться этой страницей