11.03.2025 Марс Айзатуллов 1297
Исправление сумм НДС в регистре сведений КЛ_С...

Содержание:

1.   Внешний вид обработки 1С

2.   Процедурыи функции обработки при работе в системе1С  

 

Задача: 

После загрузки данных в ЕРП из УПП в регистре сведений КЛ_СоответствиеПервичныхДокументовСУПП выяснили, что в поле «Сумма НДС» (регл) загрузились не совсем правильные значения. Это было понятно по отчету «ERP_СооответствиеДанныхБУиРегистраСуммыДокументаВВалютахУчета». Принял решение добавить в этот регистр сведений несколько полей и загрузить туда Ставка НДС, Сумма НДС и Сумма без НДС. Написал обработку, которая соединяется с Источником (УПП) по COM-соединению, синхронизируется с нужным видом документа и вытягивает поля Ставка НДС и Сумма взаиморасчетов. На основании этих данных в каждой строчке табличной части обработки рассчитывается правильные значения Ставка НДС, Сумма НДС и Сумма без НДС. И эти значения записываются в этот регистр сведений. Синхронизация происходит так: в Первичном документе в поле комментарий есть информация о виде документа в УПП его номер и дата. В алгоритме эти поля считываются и вставятся в запрос, запрос срабатывает на стороне Источника и данные передаются в Приемник (ЕРП). Загружаются в табличную часть обработки с сопоставлением с Первичными документами, которые уже были загружены заранее другими обработками.


Разберем принцип работы на примере выгрузки/загрузки вида документа «Поступление товаров и услуг». В форме документа есть кнопки по видам документов как они называются в УПП. А в ЕРП они попадают как единый документ с видом «Первичный документ». После нажатия кнопки «Поступление товаров и услуг» срабатывает функция ЗаполнитьТаблицуНаСервереОбщий которая заполняет табличную часть обработки данными из регистра сведений КЛ_СоответствиеПервичныхДокументовСУПП с отбором по виду документа «Поступление товаров и услуг» и возвращает количество документов данного вида КолПервичныйДокумент.


Если КолПервичныйДокумент больше 0 то при включенном флаге ЗаполнитьДокументыИзУПП происходит подключение по COM-соединению. Подключение реализовано в общем модуле.


Расш1_КешКлиент в функции в экспортной функции ПолучитьКомСоединение используя механизм Повторное использование возвращаемых значении на время сеанса. Чтоб каждой раз не происходило подключение по COM-соединению и не тратилось на это время.


Функция ПолучитьТекстЗапросаПоВидуДокумента(ВидДокумента) получает текст запроса в зависимости от параметра вида документа потом этот текст запроса передается процедуре ПодключениеПоСОМпоДокументам. В этой процедуре после подключение по COM-соединению происходит группировка данных полученных их УПП создание массив структур и передача этого массива процедуре ПодключениеПоСОМНаСервере. Здесь происходит синхронизация данных полученных из УПП с данными ЕРП. Проставляется Ставка НДС, вычисляются Сумма НДС и Сумма без НДС. По кнопке «Показать не синхронизированные строки» можно смотреть количество не синхронизированных строк. По кнопке «Дозаполнение основного регистра» с установленным флагом «Сделать запись» производится запись новых данных в регистр сведения СоответствиеПервичныхДокументовСУПП.

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

Те документы, где в комментарии нет данных или не получилось синхронизировать, исправляем

Ставка НДС, Сумма НДС и Сумма без НДС вручную.

 

1.    Внешний вид обработки 1С

 


К л соответствие первичных документов СУПП исправление сумм  

 

2.   Процедуры и функции обработки при работе в системе 1С

 

&НаСервере

Функция ЗаполнитьТаблицуНаСервереОбщий(ВидДокумента)

   

    ВидДокументаУПП = ПолучитьВидДокументаУПП(ВидДокумента);

   

    Если ВидДокументаУПП = Неопределено Тогда

       

        Возврат 0;

       

    КонецЕсли;

   

    ТаблицаРезультат.Очистить();

   

    Запрос = Новый Запрос;

    ТекстЗапроса =

    "ВЫБРАТЬ

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ДокументВУПП КАК ДокументВУПП,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.Организация КАК Организация,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Контрагент КАК Контрагент,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Договор КАК Договор,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Дата КАК Дата,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Номер КАК Номер,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ДокументВводаОстатков КАК ДокументВводаОстатков,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент КАК ПервичныйДокумент,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаОстатокВУПП КАК СуммаОстатокВУПП,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаОстатковНДСВУПП КАК СуммаОстатковНДСВУПП,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаОстатокПоБухУчету КАК СуммаОстатокПоБухУчету,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаНДСВзаиморасчетов КАК СуммаНДСВзаиморасчетов,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаБезНДСРегл КАК СуммаБезНДСРегл,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.СуммаНДСРегл КАК СуммаНДСРегл,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.СуммаДокумента КАК СуммаДокумента,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Валюта КАК Валюта,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий КАК Комментарий,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.ТипПервичногоДокумента КАК ТипПервичногоДокумента,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.НомерВходящегоДокумента КАК НомерВходящегоДокумента,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.ДатаВходящегоДокумента КАК ДатаВходящегоДокумента,

    |    КЛ_СоответствиеПервичныхДокументовСУПП.Синхронизирован КАК Синхронизирован,

    |    ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК КурсВалюты,

    |   ПТ_СведенияОДоговоре.ВидДоговора.ПТ_ТипДоговораУПП КАК ТипДоговораУПП

    |ПОМЕСТИТЬ втДанные

    |ИЗ

    |    РегистрСведений.КЛ_СоответствиеПервичныхДокументовСУПП КАК КЛ_СоответствиеПервичныхДокументовСУПП

    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаВводаОстатков, ) КАК КурсыВалютСрезПоследних

    |        ПО (КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Валюта = КурсыВалютСрезПоследних.Валюта)

    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПТ_СведенияОДоговоре КАК ПТ_СведенияОДоговоре

    |       ПО КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Договор = ПТ_СведенияОДоговоре.Договор

    |ГДЕ

    |    КЛ_СоответствиеПервичныхДокументовСУПП.Организация = &Организация

    |    И ВЫБОР

    |            КОГДА &ТолькоВыбранныйВводОстатковВзаиморасчетов

    |                ТОГДА КЛ_СоответствиеПервичныхДокументовСУПП.ДокументВводаОстатков = &ДокументВводаОстатков

    |            ИНАЧЕ ИСТИНА

    |        КОНЕЦ

    |###

    |;

    |

    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ

    |    втДанные.ДокументВводаОстатков КАК ДокументВводаОстатков,

    |    втДанные.ПервичныйДокумент КАК ПервичныйДокумент,

    |    втДанные.ТипПервичногоДокумента КАК ТипПервичногоДокумента,

    |    втДанные.Комментарий КАК Комментарий,

    |    втДанные.Дата КАК Дата,

    |    втДанные.Номер КАК Номер,

    |    втДанные.Организация КАК Организация,

    |    втДанные.Контрагент КАК Контрагент,

    |    втДанные.Валюта КАК Валюта,

    |    втДанные.СуммаОстатокПоБухУчету КАК СуммаОстатокПоБухУчету,

    |    втДанные.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,

    |   втДанные.СуммаДокумента КАК СуммаДокумента,

    |    втДанные.СуммаБезНДСРегл КАК СуммаБезНДСРегл,

    |    втДанные.СуммаНДСРегл КАК СуммаНДСРегл,

    |    втДанные.КурсВалюты КАК КурсВалюты,

    |    втДанные.СуммаДокумента * втДанные.КурсВалюты КАК СуммаВзаиморасчетовРасчетная,

    |    ВЫБОР

    |        КОГДА втДанные.СуммаДокумента * втДанные.КурсВалюты = втДанные.СуммаВзаиморасчетов

    |            ТОГДА ИСТИНА

    |        ИНАЧЕ ЛОЖЬ

  |    КОНЕЦ КАК СуммаВзаиморасчетовРавны,

    |   втДанные.ТипДоговораУПП КАК ТипДоговораУПП

    |ИЗ

    |    втДанные КАК втДанные

    |

    |ГДЕ

    |   ВЫБОР

    |     КОГДА &ВариантСинхронизиции = 1

    |        ТОГДА ИСТИНА

    |     КОГДА &ВариантСинхронизиции = 2

    |        ТОГДА втДанные.Синхронизирован = ИСТИНА

    |     КОГДА &ВариантСинхронизиции = 3

    |        ТОГДА втДанные.Синхронизирован = ЛОЖЬ

    |   КОНЕЦ

    |

    |УПОРЯДОЧИТЬ ПО

    |    ДокументВводаОстатков,

    |    Контрагент,

    |    ПервичныйДокумент

    |ИТОГИ

    |    СУММА(СуммаОстатокПоБухУчету),

    |    СУММА(СуммаВзаиморасчетов),

    |    СУММА(СуммаДокумента),

    |    МАКСИМУМ(КурсВалюты),

    |    СУММА(СуммаВзаиморасчетовРасчетная),

    |    МАКСИМУМ(СуммаВзаиморасчетовРавны)

    |ПО

    |    ДокументВводаОстатков

    |АВТОУПОРЯДОЧИВАНИЕ";

   

    ДокументВводаОстатков = ВводОстатковВзаиморасчетов;

   

    Запрос.УстановитьПараметр("ДокументВводаОстатков", ДокументВводаОстатков);

    Запрос.УстановитьПараметр("Организация", Организация);

    Запрос.УстановитьПараметр("ДатаВводаОстатков", Дата(2023, 12, 31, 23, 59, 59));

    Запрос.УстановитьПараметр("ТолькоВыбранныйВводОстатковВзаиморасчетов", ТолькоВыбранныйВводОстатковВзаиморасчетов);

    Запрос.УстановитьПараметр("ВариантСинхронизиции", ВариантСинхронизиции);

   

    Если ВидДокумента = "ПоступлениеТоваровИУслуг" Тогда

        ДопУсловие = "И (ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 27) = ""Поступление товаров и услуг""

        |ИЛИ ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 11) = ""Т0000003546""

        |ИЛИ ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 43) = ""копия документа для ввода остатков по 76.06"")";

    ИначеЕсли ВидДокумента = "ПоступлениеНМА" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 15) = ""Поступление НМА""";

    ИначеЕсли ВидДокумента = "ПередачаОС" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 11) = ""Передача ОС""";

    ИначеЕсли ВидДокумента = "АктОбмера" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 10) = ""Акт обмера""";

    ИначеЕсли ВидДокумента = "РеализацияТоваровИУслуг" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 26) = ""Реализация товаров и услуг""";

    ИначеЕсли ВидДокумента = "АктОбОказанииПроизводственныхУслуг" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 38) = ""Акт об оказании производственных услуг""";

    ИначеЕсли ВидДокумента = "ОтчетКомитентуОПокупках" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 28) = ""Отчет комитенту (принципалу)""";

    ИначеЕсли ВидДокумента = "ПлатежноеПоручениеИсходящее" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 29) = ""Платежное поручение исходящее""";

    ИначеЕсли ВидДокумента = "ПлатежныйОрдерСписаниеДенежныхСредств" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 44) = ""Платежный ордер на списание денежных средств""";

    ИначеЕсли ВидДокумента = "ПоступлениеДопРасходов" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 25) = ""Поступление доп. расходов""";

   ИначеЕсли ВидДокумента = "ПлатежноеПоручениеВходящее" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 28) = ""Платежное поручение входящее""";

    ИначеЕсли ВидДокумента = "КорректировкаДолга" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 19) = ""Корректировка долга""";

    ИначеЕсли ВидДокумента = "ПлатежноеТребованиеПолученное" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 31) = ""Платежное требование полученное""";

    ИначеЕсли ВидДокумента = "ПолучениеУслугПоПереработке" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 30) = ""Получение услуг по переработке""";

    ИначеЕсли ВидДокумента = "ПлатежныйОрдерПоступлениеДенежныхСредств" Тогда

        ДопУсловие = "И ПОДСТРОКА(КЛ_СоответствиеПервичныхДокументовСУПП.ПервичныйДокумент.Комментарий, 1, 47) = ""Платежный ордер на поступление денежных средств""";

    Иначе

       

        Возврат 0;   

       

    КонецЕсли;

 

 

ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "###", ДопУсловие);

   

    Запрос.Текст = ТекстЗапроса;

   

    РезультатЗапроса = Запрос.Выполнить();

   

    ВыборкаДокументВводаОстатков = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

   

    К = 0;

    КолДок = 0;

    КолПервичныйДокумент = 0;

   

    МассивВходящихДанных = Новый Массив;

   

    Пока ВыборкаДокументВводаОстатков.Следующий() Цикл

       

        ВыборкаПервичныйДокумент = ВыборкаДокументВводаОстатков.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

       

        ДокументВводаОстатков = ВыборкаДокументВводаОстатков.ДокументВводаОстатков;     

       

        Если Не ЗначениеЗаполнено(ДокументВводаОстатков) Тогда

           

            Продолжить;

           

        КонецЕсли;

       

        //Сообщить("ДокументВводаОстатков = " + ДокументВводаОстатков);

       

        КолДок = КолДок + 1;   

       

        Пока ВыборкаПервичныйДокумент.Следующий() Цикл

           

            ПервичныйДокумент = ВыборкаПервичныйДокумент.ПервичныйДокумент;   

           

            НоваяСтрока = ТаблицаРезультат.Добавить();

           

            ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаПервичныйДокумент);

           

            Если ВыборкаПервичныйДокумент.ТипДоговораУПП = Перечисления.ПТ_ТипыДоговоровУПП.ЗаймыКредиты Тогда

               

                НоваяСтрока.СтавкаНДСизУПП = "БезНДС";   

               

            КонецЕсли;

           

            СтруктураВходящихДанных = Новый Структура;

            СтруктураВходящихДанных.Вставить("ПервичныйДокумент",      ПервичныйДокумент);

            СтруктураВходящихДанных.Вставить("ТипПервичногоДокумента", ВыборкаПервичныйДокумент.ТипПервичногоДокумента);

            СтруктураВходящихДанных.Вставить("Комментарий",            ВыборкаПервичныйДокумент.Комментарий);

           

            МассивВходящихДанных.Добавить(СтруктураВходящихДанных);

           

            К = К + 1;  

           

            КолПервичныйДокумент = КолПервичныйДокумент + 1;

           

            НоваяСтрока.НомерСтроки = КолПервичныйДокумент;

           

        КонецЦикла;

       

        Если КолДок >= 5 Тогда

           

            //    Прервать;   

           

        КонецЕсли;

       

    КонецЦикла;

   

    Если МассивВходящихДанных.Количество() > 0 Тогда

       

        ДанныеДокумента = ПолучитьДанныеДокумента(МассивВходящихДанных);

       

        Для каждого стр Из ДанныеДокумента Цикл

           

            СтруктураПоиска = Новый Структура;

           

            Если стр.Комментарий = "копия документа для ввода остатков по 76.06" Тогда

                СтруктураПоиска.Вставить("Комментарий", стр.Комментарий);  

                СтруктураПоиска.Вставить("Номер",       стр.НомерИзКомментарий);

            Иначе

                СтруктураПоиска.Вставить("Комментарий", стр.Комментарий);

            КонецЕсли;

           

            МассивСтрок = ТаблицаРезультат.НайтиСтроки(СтруктураПоиска);

           

            ТекСтрока = МассивСтрок[0];

           

            ТекСтрока.ВидДокументаУПП    = стр.ВидДокументаУПП;

            ТекСтрока.НомерИзКомментарий = стр.НомерИзКомментарий;

            ТекСтрока.ДатаИзКомментарий = стр.ДатаИзКомментарий;

           

        КонецЦикла;

       

    КонецЕсли;

   

    Сообщить("КолПервичныйДокумент = " + КолПервичныйДокумент);

   

    Возврат КолПервичныйДокумент;

   

КонецФункции

 

 

 

&НаКлиенте

Процедура ПоступлениеТоваровИУслуг(Команда)

   

    ПолучениеДанныхПоВидуДокумента("ПоступлениеТоваровИУслуг");

   

КонецПроцедуры

 

&НаКлиенте

Процедура ПоступлениеНМА(Команда)

   

    ПолучениеДанныхПоВидуДокумента("ПоступлениеНМА");

   

КонецПроцедуры

 

&НаКлиенте

Процедура ПередачаОС(Команда)

   

    ПолучениеДанныхПоВидуДокумента("ПередачаОС");

   

КонецПроцедуры

 

&НаКлиенте

Процедура АктОбмера(Команда)

   

    ПолучениеДанныхПоВидуДокумента("АктОбмера");

   

КонецПроцедуры

 

&НаКлиенте

Процедура РеализацияТоваровИУслуг(Команда)

   

    ПолучениеДанныхПоВидуДокумента("РеализацияТоваровИУслуг");

   

КонецПроцедуры

 

&НаКлиенте

Процедура ПолучениеДанныхПоВидуДокумента(ВидДокумента)

   

    КолПервичныйДокумент = ЗаполнитьТаблицуНаСервереОбщий(ВидДокумента);

   

    Если КолПервичныйДокумент = 0 Тогда

       

        //Сообщить("Не найден значение " + ВидДокумента + " перечиления КЛ_ВидыДокументовУПП");

   

        Возврат;

       

    КонецЕсли;

   

    Если ЗаполнитьДокументыИзУПП Тогда   

        ТекстЗапроса = ПолучитьТекстЗапросаПоВидуДокумента(ВидДокумента);

        ПодключениеПоСОМпоДокументам(ТекстЗапроса);

    КонецЕсли;

   

КонецПроцедуры

 

&НаКлиенте

Функция ПолучитьТекстЗапросаПоВидуДокумента(ВидДокумента)

   

    Если ВидДокумента = "ПоступлениеТоваровИУслуг" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Поступление товаров и услуг"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПоступлениеТоваровУслуг.Товары КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Поступление товаров и услуг""

        |ИЗ

        |    Документ.ПоступлениеТоваровУслуг.Услуги КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

       |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Поступление товаров и услуг""

        |ИЗ

        |    Документ.ПоступлениеТоваровУслуг.Оборудование КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Поступление товаров и услуг""

        |ИЗ

        |    Документ.ПоступлениеТоваровУслуг.ТоварыВРознице КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "РеализацияТоваровИУслуг" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Реализация товаров и услуг"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.Товары КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Реализация товаров и услуг""

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.Услуги КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Реализация товаров и услуг""

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.ТоварыВРознице КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |   

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС,

        |    Данные.СтавкаНДС,

        |    ""Реализация товаров и услуг""

        |ИЗ

        |    Документ.РеализацияТоваровУслуг.ОбъектыСтроительства КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ПередачаОС" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Передача ОС"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПередачаОС.ОС КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";   

       

    ИначеЕсли ВидДокумента = "АктОбмера" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Акт обмера"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.АктОбмера.Услуги КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";   

       

    ИначеЕсли ВидДокумента = "АктОбОказанииПроизводственныхУслуг" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Акт об оказании производственных услуг"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.АктОбОказанииПроизводственныхУслуг.Услуги КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";   

       

    ИначеЕсли ВидДокумента = "ПоступлениеНМА" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Поступление НМА"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПоступлениеНМА.НематериальныеАктивы КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ОтчетКомитентуОПокупках" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Отчет комитенту (принципалу)"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ОтчетКомитентуОПокупках.Товары КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ПлатежноеПоручениеИсходящее" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Платежное поручение исходящее"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

        

    ИначеЕсли ВидДокумента = "ПлатежныйОрдерСписаниеДенежныхСредств" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Платежный ордер на списание денежных средств"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПлатежныйОрдерСписаниеДенежныхСредств.РасшифровкаПлатежа КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ПоступлениеДопРасходов" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |   Данные.Ссылка КАК Документ,

        |   Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |   Данные.СуммаНДС КАК СуммаНДС,

        |   Данные.Ссылка.СтавкаНДС КАК СтавкаНДС,

        |    ""Поступление доп. расходов"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПоступлениеДопРасходов.Товары КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |   Данные.Ссылка,

        |   Данные.Ссылка.СуммаДокумента,

        |   Данные.СуммаНДС,

        |   Данные.Ссылка.СтавкаНДС,

        |    ""Поступление доп. расходов""

        |ИЗ

        |    Документ.ПоступлениеДопРасходов.Оборудование КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ПлатежноеПоручениеВходящее" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |   Данные.Ссылка КАК Документ,

        |   Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |   Данные.СуммаНДС КАК СуммаНДС,

        |   Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Платежное поручение входящее"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "КорректировкаДолга" Тогда

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Сумма КАК СуммаДокумента,

        |    Данные.ДокументРасчетовСКонтрагентом.УчитыватьНДС КАК УчитыватьНДС,

        |    ВЫБОР

        |        КОГДА Данные.ДокументРасчетовСКонтрагентом.УчитыватьНДС

        |            ТОГДА ВЫБОР

        |                    КОГДА Данные.Ссылка.Дата < ДАТАВРЕМЯ(2019, 1, 1)

        |                        ТОГДА 18

        |                    ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)

        |                КОНЕЦ

        |        ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)

        |    КОНЕЦ КАК СтавкаНДС

        |ПОМЕСТИТЬ втДокумент

        |ИЗ

        |    Документ.КорректировкаДолга.СуммыДолга КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |;

        |

        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ

        |    втДокумент.Документ КАК Документ,

        |    втДокумент.СуммаДокумента КАК СуммаДокумента,

        |    ВЫБОР

        |        КОГДА втДокумент.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)

        |            ТОГДА 0

        |        КОГДА втДокумент.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)

        |            ТОГДА втДокумент.СуммаДокумента * 20 / 120

        |        КОГДА втДокумент.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)

        |            ТОГДА втДокумент.СуммаДокумента * 18 / 118

        |    КОНЕЦ КАК СуммаНДС,

        |    втДокумент.СтавкаНДС КАК СтавкаНДС,

        |    ""Корректировка долга"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    втДокумент КАК втДокумент";

       

    ИначеЕсли ВидДокумента = "ПлатежноеТребованиеПолученное" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.СуммаПлатежа КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Платежное требование полученное"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПлатежноеТребованиеПолученное.РасшифровкаПлатежа КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

   ИначеЕсли ВидДокумента = "ПолучениеУслугПоПереработке" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента КАК СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Получение услуг по переработке"" КАК ВидДокумента

        |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПолучениеУслугПоПереработке.Товары КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод

        |

        |ОБЪЕДИНИТЬ ВСЕ

        |

        |ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Получение услуг по переработке""

        |ИЗ

        |    Документ.ПолучениеУслугПоПереработке.Услуги КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    ИначеЕсли ВидДокумента = "ПлатежныйОрдерПоступлениеДенежныхСредств" Тогда

       

        ТекстЗапроса =

        "ВЫБРАТЬ

        |    Данные.Ссылка КАК Документ,

        |    Данные.Ссылка.СуммаДокумента,

        |    Данные.СуммаНДС КАК СуммаНДС,

        |    Данные.СтавкаНДС КАК СтавкаНДС,

        |    ""Платежный ордер на поступление денежных средств"" КАК ВидДокумента

       |ПОМЕСТИТЬ втДанные

        |ИЗ

        |    Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.РасшифровкаПлатежа КАК Данные

        |ГДЕ

        |    Данные.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

        |    И Данные.Ссылка.Организация.Код = &ОрганизацияКод";

       

    Иначе

        ТекстЗапроса = Неопределено;

    КонецЕсли;

   

    Возврат ТекстЗапроса;

   

КонецФункции

 

 

&НаКлиенте

Процедура ПодключениеПоСОМпоДокументам(ТекстЗапроса)

   

    Если ТекстЗапроса = Неопределено Тогда

       

        Сообщить("Не задан ТекстЗапроса!");

       

        Возврат;

       

    КонецЕсли;

   

    Соединение = Расш1_КешКлиент.ПолучитьКомСоединение();

   

    Если Соединение = Неопределено Тогда

       

        Сообщить("Ошибка подключения!");

       

        Возврат;

       

    КонецЕсли;

   

    МассивДокументы = Новый Массив;

   

    Запрос = Соединение.NewObject("Запрос");

   

    ТекстЗапроса = ТекстЗапроса + ";" + "

    |ВЫБРАТЬ

    |    втДанные.Документ,

    |    втДанные.СтавкаНДС,

    |    МАКСИМУМ(втДанные.СуммаДокумента) КАК СуммаДокумента,

    |    СУММА(втДанные.СуммаНДС) КАК СуммаНДС,

    |    МАКСИМУМ(втДанные.ВидДокумента) КАК ВидДокумента

    |ПОМЕСТИТЬ втДанныеСгруппирован

    |ИЗ

    |    втДанные КАК втДанные

    |

    |СГРУППИРОВАТЬ ПО

    |    втДанные.Документ,

    |    втДанные.СтавкаНДС

    |;

    |

    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ

    |    втДанные.Документ КАК Документ,

    |    втДанные.Документ.Организация КАК Организация,

    |    втДанные.Документ.Номер КАК Номер,

    |    втДанные.Документ.Дата КАК Дата,  

    |    втДанные.ВидДокумента КАК ВидДокумента,  

    |    втДанные.СуммаДокумента КАК СуммаДокумента,

    |    ВЫБОР

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)

    |            ТОГДА 20

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)

    |            ТОГДА 20

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)

    |            ТОГДА 18

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)

    |            ТОГДА 18

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)

    |            ТОГДА 10

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)

    |            ТОГДА 10

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)

    |            ТОГДА ""БезНДС""

    |        КОГДА втДанные.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0)

    |            ТОГДА ""БезНДС""

    |    КОНЕЦ КАК СтавкаНДС,

    |    ЕСТЬNULL(втДанные.СуммаНДС, 0) КАК СуммаНДС,

    //    |    ВЫБОР КОГДА втДанные.Документ.СуммаВключаетНДС КАК СуммаВключаетНДС

    |    ИСТИНА КАК СуммаВключаетНДС

    |ПОМЕСТИТЬ втРезультат

    |ИЗ

    |    втДанныеСгруппирован КАК втДанные

    |;

    |

    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ

    |    втРезультат.Документ,

    |    МАКСИМУМ(втРезультат.СуммаДокумента) КАК СуммаДокумента,

    |    МАКСИМУМ(втРезультат.СтавкаНДС) КАК СтавкаНДС,

    |    СУММА(втРезультат.СуммаНДС) КАК СуммаНДС,

    |    МАКСИМУМ(втРезультат.СуммаВключаетНДС) КАК СуммаВключаетНДС,

    |    МАКСИМУМ(втРезультат.ВидДокумента) КАК ВидДокумента

    |ПОМЕСТИТЬ втРезультатСгруппирован

    |ИЗ

    |    втРезультат КАК втРезультат

    |

    |СГРУППИРОВАТЬ ПО

    |    втРезультат.Документ

    |;

    |

    |////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ

    |    втРезультатСгруппирован.ВидДокумента КАК ВидДокументаИзУПП,

    |    втРезультатСгруппирован.Документ.Дата КАК ДатаИзУПП,

    |    втРезультатСгруппирован.Документ.Номер КАК НомерИзУПП,   

    |    втРезультатСгруппирован.СуммаДокумента КАК СуммаДокументаИзУПП,

    |    втРезультатСгруппирован.СтавкаНДС КАК СтавкаНДСИзУПП,

    |    втРезультатСгруппирован.СуммаНДС КАК СуммаНДСРеглИзУПП,

    |    втРезультатСгруппирован.СуммаВключаетНДС КАК СуммаВключаетНДС

    |ИЗ

    |    втРезультатСгруппирован КАК втРезультатСгруппирован

    |УПОРЯДОЧИТЬ ПО

    |    ВидДокументаИзУПП";   

   

    НачалоПериода = Дата(2000, 1, 1);

    КонецПериода = Дата(2023, 12, 31, 23, 59, 59);

   

    Запрос.УстановитьПараметр("Дата1", НачалоПериода);

    Запрос.УстановитьПараметр("Дата2", КонецПериода);

   

    ОрганизацияКод = КодОрганизации;

   

    Запрос.Текст = ТекстЗапроса;

   

    Запрос.УстановитьПараметр("ОрганизацияКод", ОрганизацияКод);

   

    Результат = Запрос.Выполнить();

   

    Выборка = Результат.Выбрать();

   

    ВсегоСтрокИзУПП = Выборка.Количество();

   

    Сообщить("Всего строк из УПП = " + ВсегоСтрокИзУПП);

   

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

       

        СтруктураДокумента = Новый Структура;

       

        СтруктураДокумента.Вставить("ВидДокументаИзУПП",   Выборка.ВидДокументаИзУПП);

        СтруктураДокумента.Вставить("ДатаИзУПП",           НачалоДня(Выборка.ДатаИзУПП));

        СтруктураДокумента.Вставить("НомерИзУПП",          Выборка.НомерИзУПП);

        СтруктураДокумента.Вставить("СуммаВключаетНДС",    Выборка.СуммаВключаетНДС);

        СтруктураДокумента.Вставить("СуммаДокументаИзУПП", Выборка.СуммаДокументаИзУПП);

        СтруктураДокумента.Вставить("СтавкаНДСизУПП",      Выборка.СтавкаНДСизУПП);

        СтруктураДокумента.Вставить("СуммаНДСРеглИзУПП",   Выборка.СуммаНДСРеглИзУПП);

       

        МассивДокументы.Добавить(СтруктураДокумента);

       

    КонецЦикла;

   

    ПодключениеПоСОМНаСервере(МассивДокументы);

   

КонецПроцедуры

 

 

&НаКлиенте

Процедура ДозаполнениеОсновногоРегистра(Команда)

    ДозаполнениеОсновногоРегистраНаСервере();

КонецПроцедуры

 

&НаСервере

Процедура ДозаполнениеОсновногоРегистраНаСервере()

   

    НЗ = РегистрыСведений.КЛ_СоответствиеПервичныхДокументовСУПП.СоздатьНаборЗаписей();

   

    Н = 0;

   

    СпрСтавкиНДС = Справочники.СтавкиНДС;

   

    Для каждого стр Из ТаблицаРезультат Цикл

       

        ВидДокументаУПП = СокрЛП(стр.ВидДокументаУПП);

       

        ВидДокументаИзУПП = ПолучитьВидДокументаУПП(ВидДокументаУПП);

       

        Если ВидДокументаИзУПП = Неопределено Тогда

           

            Продолжить;

           

        КонецЕсли;

       

        НЗ.Отбор.Организация.Установить(Организация);

        НЗ.Отбор.ДокументВводаОстатков.Установить(стр.ДокументВводаОстатков);

        НЗ.Отбор.ПервичныйДокумент.Установить(стр.ПервичныйДокумент);

       

        НЗ.Прочитать();

       

        Если НЗ.Количество() = 0 Тогда

            Запись = НЗ.Добавить();

        Иначе   

            Запись = НЗ[0];

        КонецЕсли;

       

        ЗаполнитьЗначенияСвойств(Запись, стр);

       

        Синхронизирован = стр.ЕстьСинхронизация;

       

        Если Синхронизирован = Ложь Тогда

           

            Продолжить;

           

        КонецЕсли;  

       

        Запись.ВидДокументаИзУПП = ВидДокументаИзУПП;

        Запись.Синхронизирован   = Синхронизирован;

       

        ТекСтавкаНДС = СокрЛП(Строка(стр.СтавкаНДСизУПП));

       

        Н = Н + 1;

       

        Если ТекСтавкаНДС = "БезНДС" Тогда

            СтавкаНДС = СпрСтавкиНДС.БезНДС;

        Иначе

            СтавкаНДС = СпрСтавкиНДС.НайтиПоНаименованию(ТекСтавкаНДС + "%", Истина);

        КонецЕсли;

       

        Если ЗначениеЗаполнено(СтавкаНДС) Тогда

            Запись.СтавкаНДС = СтавкаНДС;

        КонецЕсли;

       

        Запись.СуммаНДС            = стр.СуммаНДС;

        Запись.СуммаБезНДС         = стр.СуммаБезНДС;

        Запись.Контрагент          = стр.Контрагент;

        Запись.Валюта              = стр.Валюта;

        Запись.КурсВалюты          = стр.КурсВалюты;

        Запись.СуммаДокументаИзУПП = стр.СуммаДокументаИзУПП;

       

        Если СделатьЗапись Тогда

           

            НЗ.Записать();

           

        КонецЕсли;

       

        //Если Н >= 1 Тогда

        //

        //    Прервать;

        //

        //КонецЕсли;

       

    КонецЦикла;

   

    ОбщегоНазначения.СообщитьПользователю("Обработан " + Н + " записей");

   

КонецПроцедуры

 

Специалист компании ООО "Кодерлайн"

Марс Айзатуллов

Наши проекты

ЗАО «Ламбумиз»
ЗАО «Ламбумиз»

Отрасль:
Производство картонной упаковки

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Маркетинг;
- Продажи;
- Планирование закупок;
- Закупки;
- Регламентированный учет;
- Управление денежными средствами,...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Бухгалтерский учет Банк и касса Расчеты с контрагентами Торговые операции ...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

Отрасль:
Оптовая торговля

Внедренное типовое решение:
1С:Комплексная автоматизация

- Оперативный учет...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного пакета;
- Создан единообразный интерфейс как в офисе, так и...

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

Управление персоналом и кадровый учет (HRM) Кадровый учет Расчет зарплаты Регламентированная отчетность Учет рабочего времени ...

ПАО «АрселорМиттал Кривой Рог»
ПАО «АрселорМиттал Кривой Рог»

Отрасль:
Металлургическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием для Украины

- Кадровый учет
- Расчет зарплаты
- Регламентированная отчетность
- Учет рабочего времени ...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление заказов поставщикам;
Управление продажами, логистикой и т...

Госкорпорация «Ростех»
Госкорпорация «Ростех»

Отрасль:
Производство, ТЭК >> Машиностроение, приборостроение

Внедренное типовое решение:
1С:Управление холдингом 1.3.

Специалисты «Кодерлайн» помогли разработать и внедрить автоматизированную систему управления финансовой и закупочной деятельностью (АС ФЗД) ...

ООО «ЛИГА-ТРАНС»
ООО «ЛИГА-ТРАНС»

Отрасль:
Профессиональные услуги, бытовое обслуживание

Внедренное типовое решение:
«1С:ERP Управление предприятием 2.1».

- Сделано ТЗ по автоматизации учета МСФО: - Разработана карта бюджета доходов и расходов в разрезе управленческого учета - Установлены форм...

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

- Оформление заказов покупателей;
- Управление складскими запасами;
- Анализ запасов/остатков...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение