Перем v77; Перем тз1; Перем глрубли; Функция СоздатьКонтакт(Объект, Представление,Тип,Вид) запись=РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); запись.Объект=Объект; запись.Тип=Тип; запись.Вид=Вид; запись.Представление=Представление; запись.Записать(); КонецФункции Функция СоздатьБанк(Банк) рез=Справочники.Банки.НайтиПоКоду(СокрЛП(Банк.Код)); Если рез.Пустая() Тогда рез=Справочники.Банки.СоздатьЭлемент(); рез.Код=Банк.Код; рез.Наименование=Банк.Наименование; рез.КоррСчет=Банк.КоррСчет; рез.Город=Банк.Местонахождение; рез.Адрес=Банк.Адрес; рез.Записать(); КонецЕсли; Возврат рез.Ссылка; КонецФункции Функция СоздатьВалюта(Валюта) рез=Справочники.Валюты.НайтиПоКоду(Сокрлп(Валюта.Код)); Если рез.Пустая() Тогда рез=Справочники.Валюты.НайтиПоНаименованию(Сокрлп(Валюта.Наименование)); КонецЕсли; Если рез.Пустая() Тогда рез=Справочники.Валюты.СоздатьЭлемент(); рез.Код=Сокрлп(Валюта.Код); рез.Наименование=Сокрлп(Валюта.Наименование); рез.НаименованиеПолное=Валюта.ПолнНаименование; рез.Записать(); КонецЕсли; Возврат рез.Ссылка; КонецФункции Функция Создатьбанковскийсчет(бсчет77,контр) Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ ПЕРВЫЕ 1 | БанковскиеСчета.Ссылка |ИЗ | Справочник.БанковскиеСчета КАК БанковскиеСчета |ГДЕ | БанковскиеСчета.Владелец = &Владелец | И БанковскиеСчета.Владелец ССЫЛКА Справочник.Контрагенты | И БанковскиеСчета.НомерСчета = &НомерСчета"; Запрос.УстановитьПараметр("Владелец",контр.ссылка); Запрос.УстановитьПараметр("НомерСчета",бсчет77.НомерСчета); тз=Запрос.Выполнить().Выгрузить(); Если тз.Количество()>0 Тогда Возврат тз[0].Ссылка; Иначе спр=Справочники.БанковскиеСчета.СоздатьЭлемент(); спр.Владелец=контр; спр.Наименование=бсчет77.Наименование; спр.НомерСчета=бсчет77.НомерСчета; спр.ВидСчета=бсчет77.ВидСчета; спр.ВалютаДенежныхСредств=СоздатьВалюта(бсчет77.ВалютаСчета); спр.Банк=СоздатьБанк(бсчет77.Банк); спр.Записать(); Возврат спр.Ссылка; КонецЕсли; КонецФункции Функция СоздатьДоговор(Контрагент,Наименование,Организация) Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ДоговорыКонтрагентов.Ссылка |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов |ГДЕ | ДоговорыКонтрагентов.Владелец = &Владелец"+?(ПустаяСтрока(Наименование),""," | И ДоговорыКонтрагентов.Наименование = &Наименование")+" | |УПОРЯДОЧИТЬ ПО | ДоговорыКонтрагентов.ПометкаУдаления, | ВЫБОР | КОГДА ДоговорыКонтрагентов.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.Прочее) | ТОГДА 0 | ИНАЧЕ 1 | КОНЕЦ"; Запрос.УстановитьПараметр("Владелец",Контрагент.Ссылка); Запрос.УстановитьПараметр("Наименование",Наименование); тз=Запрос.Выполнить().Выгрузить(); Если тз.Количество()<>0 Тогда дог=тз[0].Ссылка; Иначе дог=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент(); дог.Владелец=Контрагент; дог.Наименование=?(ПустаяСтрока(Наименование),"Основной договор",Наименование); дог.УстановитьНовыйКод(); дог.ВидДоговора=Перечисления.ВидыДоговоровКонтрагентов.Прочее; дог.ВалютаВзаиморасчетов=глрубли; дог.Организация=?(ПустаяСтрока(Организация),Справочники.Организации.НайтиПоКоду("000000002"),Организация); Попытка дог.Записать(); Исключение док=Справочники.ДоговорыКонтрагентов.ПустаяСсылка(); КонецПопытки; КонецЕсли; Если Контрагент.ОсновнойДоговорКонтрагента.Пустая() Тогда контр=Контрагент.ПолучитьОбъект(); контр.ОсновнойДоговорКонтрагента=дог.Ссылка; контр.Записать(); КонецЕсли; Возврат дог.Ссылка; КонецФункции Функция СоздатьКонтрагентаОПС() контр=Справочники.Контрагенты.НайтиПоКоду("Н0028648"); Если контр.Пустая() Тогда контр=Справочники.Контрагенты.СоздатьЭлемент(); контр.Код="Н0028648"; контр.Наименование="ОПС - производство"; родитель=Справочники.Контрагенты.НайтиПоКоду("Н0027721"); Если родитель.Пустая() тогда родитель=Справочники.Контрагенты.СоздатьГруппу(); родитель.Код="Н0027721"; родитель.Наименование="Поставщики"; родитель.Записать(); КонецЕсли; Если НЕ родитель.ЭтоГруппа Тогда родитель=Справочники.Контрагенты.ПустаяСсылка(); КонецЕсли; контр.Родитель=родитель.Ссылка; контр.НаименованиеПолное="ООО ""ОПС - производство"""; контр.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо; контр.ИНН="7707684340"; контр.КПП="770701001"; контр.КодПоОКПО="89598906"; контр.Записать(); КонецЕсли; Возврат контр.Ссылка; КонецФункции Функция СоздатьКонтрагент(Элемент) Перем банковскийсчет; бсчет77=v77.CreateObject("Справочник.БанковскиеСчета"); Если ПустаяСтрока(Элемент.Код) Тогда Возврат Справочники.Контрагенты.ПустаяСсылка(); КонецЕсли; Запрос = Новый Запрос("ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Код = &Код | |УПОРЯДОЧИТЬ ПО | Контрагенты.ПометкаУдаления"); Запрос.УстановитьПараметр("Код",Сокрлп(Элемент.Код)); тз=Запрос.Выполнить().Выгрузить(); Если тз.Количество()>0 Тогда контр=тз[0].Ссылка; Иначе контр=Справочники.Контрагенты.СоздатьЭлемент(); контр.Код=Сокрлп(Элемент.Код); контр.Наименование=Сокрлп(Элемент.Наименование); родитель=Справочники.Контрагенты.НайтиПоКоду("00000005"); Если родитель.Пустая() тогда родитель=Справочники.Контрагенты.СоздатьГруппу(); родитель.Код="00000005"; родитель.Наименование="Заказчики"; родитель.Записать(); КонецЕсли; Если НЕ родитель.ЭтоГруппа Тогда родитель=Справочники.Контрагенты.ПустаяСсылка(); КонецЕсли; контр.Родитель=родитель.Ссылка; Если Элемент.ЮрФизЛицо<>Неопределено Тогда контр.НаименованиеПолное=Элемент.ЮрФизЛицо.ПолнНаименование; Если Элемент.ЮрФизЛицо.Вид()="ЮрЛица" Тогда контр.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо; контр.ИНН=Лев(СокрЛП(Элемент.ЮрФизЛицо.ИНН),10); контр.КПП=Сред(СокрЛП(Элемент.ЮрФизЛицо.ИНН),12); контр.КодПоОКПО=Элемент.ЮрФизЛицо.ОКПО; Иначе контр.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ФизЛицо; контр.ИНН=СокрЛП(Элемент.ЮрФизЛицо.ИНН); КонецЕсли; КонецЕсли; контр.Записать(); дог=СоздатьДоговор(контр.Ссылка,,Справочники.Организации.НайтиПоКоду("000000002")); Если Элемент.ЮрФизЛицо<>Неопределено Тогда Если бсчет77.ВыбратьЭлементыПоРеквизиту("ЮрФизЛицо",Элемент.ЮрФизЛицо,0,0)=1 Тогда Пока бсчет77.ПолучитьЭлемент()=1 Цикл банковскийсчет=Создатьбанковскийсчет(бсчет77,контр); Если контр.ОсновнойБанковскийСчет.Пустая() Тогда контр=контр.получитьОбъект(); контр.ОсновнойБанковскийСчет=банковскийсчет; контр.Записать(); КонецЕсли; КонецЦикла; КонецЕсли; Если НЕ ПустаяСтрока(Элемент.ЮрФизЛицо.Телефоны) Тогда СоздатьКонтакт(контр.ссылка,Элемент.ЮрФизЛицо.Телефоны,Перечисления.ТипыКонтактнойИнформации.Телефон,Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента); КонецЕсли; Если НЕ ПустаяСтрока(Элемент.ЮрФизЛицо.ЮрАдрес) Тогда СоздатьКонтакт(контр.ссылка,Элемент.ЮрФизЛицо.ЮрАдрес,Перечисления.ТипыКонтактнойИнформации.Адрес,Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента); КонецЕсли; Если НЕ ПустаяСтрока(Элемент.ЮрФизЛицо.ФактАдрес) Тогда СоздатьКонтакт(контр.ссылка,Элемент.ЮрФизЛицо.ФактАдрес,Перечисления.ТипыКонтактнойИнформации.Адрес,Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента); КонецЕсли; КонецЕсли; КонецЕсли; Возврат контр.Ссылка; КонецФункции Функция СоздатьНоменклатурнаяГруппа(Номенклатура) Если Номенклатура.Пустая() Тогда Возврат Справочники.НоменклатурныеГруппы.ПустаяСсылка(); КонецЕсли; элГруппы = ПолучитьверхГруппа(Номенклатура); НаименованиеГруппы=элГруппы.Наименование; нг=Справочники.НоменклатурныеГруппы.НайтиПоНаименованию(СокрЛП(НаименованиеГруппы)); Если нг.Пустая() Тогда нг=Справочники.НоменклатурныеГруппы.СоздатьЭлемент(); нг.Наименование=НаименованиеГруппы; нг.УстановитьНовыйКод(); нг.Записать(); КонецЕсли; Возврат нг; КонецФункции Функция ПолучитьверхГруппа(Элемент) Если ПустаяСтрока(Элемент.Родитель.Код) Тогда рез = Элемент.ссылка; Иначе рез = ПолучитьверхГруппа(Элемент.Родитель); КонецЕсли; Возврат рез; КонецФункции Функция СоздатьГТД(Элемент) Если ПустаяСтрока(Элемент.Код) Тогда Возврат Справочники.НомераГТД.ПустаяСсылка(); КонецЕсли; ГТД=Справочники.НомераГТД.НайтиПоНаименованию(СокрЛП(Элемент.Код)); Если ГТД.Пустая()Тогда ГТД=Справочники.НомераГТД.СоздатьЭлемент(); ГТД.Наименование=СокрЛП(Элемент.Код); КонецЕсли; Возврат ГТД; КонецФункции Функция СоздатьКСМ(Элемент) Если ПустаяСтрока(Элемент.Наименование) тогда Возврат Справочники.КлассификаторЕдиницИзмерения.ПустаяСсылка(); КонецЕсли; рез=Справочники.КлассификаторСтранМира.НайтиПоНаименованию(Сокрлп(Элемент.Наименование)); Если рез.Пустая() Тогда ксм=Справочники.КлассификаторСтранМира.СоздатьЭлемент(); ксм.Код=Элемент.Код; ксм.Наименование=Элемент.наименование; Попытка ксм.Записать(); Исключение ксм.УстановитьНовыйКод(); ксм.Записать(); КонецПопытки; КонецЕсли; Возврат рез; КонецФункции Функция Услуга_ном(Номенклатура,Родитель) Если Родитель.Пустая() Тогда Если Номенклатура.ВидНоменклатуры.Идентификатор()="Услуга" или Номенклатура.ВидНоменклатуры.Идентификатор()="Работа" Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; Иначе элГруппы=ПолучитьверхГруппа(Родитель); Если Сокрлп(элГруппы.Код)="Н00000073" Тогда Возврат Ложь; ИначеЕсли Сокрлп(элГруппы.Код="19") или Сокрлп(элГруппы.Код="Н00001104") Тогда Возврат Истина; Иначе Если Номенклатура.ВидНоменклатуры.Идентификатор()="Услуга" или Номенклатура.ВидНоменклатуры.Идентификатор()="Работа" Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; КонецЕсли; КонецЕсли; КонецФункции Функция ПолучитьСтавкуНДС(СтавкаНДС) рез=Перечисления.СтавкиНДС.НДС18; Если Сокрлп(СтавкаНДС)="БезНДС" Тогда рез=Перечисления.СтавкиНДС.БезНДС; ИначеЕсли Сокрлп(СтавкаНДС)="НДС10" Тогда рез=Перечисления.СтавкиНДС.НДС10; ИначеЕсли Сокрлп(СтавкаНДС)="НДС20" Тогда рез=Перечисления.СтавкиНДС.НДС20; ИначеЕсли Сокрлп(СтавкаНДС)="НДС9_09" или Сокрлп(СтавкаНДС)="НДС10_110" Тогда рез=Перечисления.СтавкиНДС.НДС10_110; ИначеЕсли Сокрлп(СтавкаНДС)="НДС16_67" или Сокрлп(СтавкаНДС)="НДС20_120" Тогда рез=Перечисления.СтавкиНДС.НДС20_120; ИначеЕсли Сокрлп(СтавкаНДС)="НДС18" Тогда рез=Перечисления.СтавкиНДС.НДС18; ИначеЕсли Сокрлп(СтавкаНДС)="НДС18_118" Тогда рез=Перечисления.СтавкиНДС.НДС18_118; КонецЕсли; Возврат рез; КонецФункции Функция СоздатьЕдиницу(Единица) Если ПустаяСтрока(Единица.Наименование) Тогда Наименование="шт"; Иначе Наименование=Единица.Наименование; КонецЕсли; ед=Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(Сокрлп(Наименование)); Если ед.Пустая() Тогда ед=Справочники.КлассификаторЕдиницИзмерения.СоздатьЭлемент(); ед.Наименование=Сокрлп(Наименование); ед.УстановитьНовыйКод(); ед.Записать(); КонецЕсли; Возврат ед; КонецФункции Функция СоздатьГруппа(Элемент,спр) Если ПустаяСтрока(Сокрлп(Элемент.Код)) Тогда Возврат спр.ПустаяСсылка(); КонецЕсли; группа=спр.НайтиПоКоду(Сокрлп(Элемент.Код)); Если группа.Пустая() Тогда группа=спр.СоздатьГруппу(); группа.Код=Элемент.Код; группа.Наименование=Элемент.Наименование; родитель=СоздатьГруппа(Элемент.Родитель,спр); группа.родитель=родитель; группа.Записать(); КонецЕсли; Возврат группа.ссылка; КонецФункции Функция СоздатьНоменклатура(Номенклатура) Если ПустаяСтрока(Номенклатура.Код) Тогда Возврат Справочники.Номенклатура.ПустаяСсылка(); КонецЕсли; ном=Справочники.Номенклатура.НайтиПоКоду(СокрЛП(Номенклатура.Код)); Если Не ном.Пустая() Тогда Если ном.ЭтоГруппа Тогда ном_=ном.ПолучитьОбъект(); ном_.УстановитьНовыйКод("Г"); ном_.Записать(); ном=Справочники.Номенклатура.НайтиПоКоду(СокрЛП(Номенклатура.Код)); КонецЕсли; КонецЕсли; Если ном.Пустая() Тогда ном=Справочники.Номенклатура.СоздатьЭлемент(); ном.Код=Номенклатура.Код; Родитель=СоздатьГруппа(Номенклатура.Родитель,Справочники.Номенклатура); ном.Родитель=Родитель; ном.Наименование=номенклатура.Наименование; ном.НаименованиеПолное=Номенклатура.ПолнНаименование; единица=СоздатьЕдиницу(Номенклатура.БазоваяЕдиница); ном.БазоваяЕдиницаИзмерения=единица; СтавкаНДС=ПолучитьСтавкуНДС(Номенклатура.СтавкаНДС.Идентификатор()); ном.СтавкаНДС=СтавкаНДС; ном.Комментарий=Сокрлп(Номенклатура.Комментарий); ном.Услуга=Услуга_ном(Номенклатура,ном.Родитель); СтранаПроисхождения=СоздатьКСМ(Номенклатура.СтранаПроисхождения); ном.СтранаПроисхождения=СтранаПроисхождения; ГТД=СоздатьГТД(Номенклатура.НомерГТД); ном.НомерГТД=ГТД; ном.Записать(); НоменклатурнаяГруппа=СоздатьНоменклатурнаяГруппа(ном.Родитель); ном.НоменклатурнаяГруппа=НоменклатурнаяГруппа; ном.Записать(); Иначе ном=ном.ПолучитьОбъект(); Родитель=СоздатьГруппа(Номенклатура.Родитель,Справочники.Номенклатура); ном.Родитель=Родитель; ном.Записать(); КонецЕсли; Возврат ном.Ссылка; КонецФункции Функция ЗагрузитьСтрана(СтранаПроисхождения) Если ПустаяСтрока(СтранаПроисхождения.Наименование) Тогда Возврат Справочники.КлассификаторСтранМира.ПустаяСсылка(); КонецЕсли; рез=Справочники.КлассификаторСтранМира.НайтиПоНаименованию(СокрЛП(СтранаПроисхождения.Наименование)); Если рез.Пустая() Тогда рез=Справочники.КлассификаторСтранМира.СоздатьЭлемент(); рез.Наименование=СокрЛП(СтранаПроисхождения.Наименование); рез.Код=СокрЛП(СтранаПроисхождения.Код); Попытка рез.Записать(); Исключение рез.УстановитьНовыйКод("н"); рез.Записать(); КонецПопытки; КонецЕсли; Возврат рез.Ссылка; КонецФункции Функция ЗагрузитьГТД(ГТД) Если ПустаяСтрока(ГТД.Наименование) Тогда Возврат Справочники.НомераГТД.ПустаяСсылка(); КонецЕсли; рез=Справочники.НомераГТД.НайтиПоКоду(СокрЛП(ГТД.Наименование)); Если рез.Пустая() Тогда рез=Справочники.НомераГТД.СоздатьЭлемент(); рез.Код=СокрЛП(ГТД.Наименование); рез.Записать(); КонецЕсли; Возврат рез.Ссылка; КонецФункции Функция ПолучитьСчет(счет) поз = Найти(счет,"."); Если поз > 0 Тогда Результат = Лев(счет,поз-1); счет = Сред(счет,поз+1); поз = Найти(счет,"."); Если поз > 0 Тогда Если СтрДлина(Лев(счет,поз-1))=1 Тогда Результат = Результат+".0"+ Лев(счет,поз-1)+Сред(счет,поз); Иначе Результат = Результат+"."+ Лев(счет,поз-1)+Сред(счет,поз); КонецЕсли; Иначе Если СтрДлина(счет)=1 Тогда Результат = Результат+".0"+счет; Иначе Результат = Результат+"."+счет; КонецЕсли; КонецЕсли; Иначе Результат = счет; КонецЕсли; Возврат ПланыСчетов.Хозрасчетный.НайтиПоКоду(Результат).Ссылка; КонецФункции Процедура СоздатьПоступлениеСводное(Таб) Перем док; номер_док=0; Если Таб.Количество()=0 Тогда Возврат; КонецЕсли; Таб.Сортировать("Дата,Вид"); Организация=Справочники.Организации.НайтиПоКоду("000000002"); Контрагент=СоздатьКонтрагентаОПС(); Если Контрагент.ОсновнойДоговорКонтрагента.Пустая() Тогда договор=СоздатьДоговор(Контрагент,"договор №01/06-У от 01.06.09",Организация); Иначе договор=Контрагент.ОсновнойДоговорКонтрагента; КонецЕсли; датаДок=""; вид=""; Для Каждого Строкатз из Таб Цикл Если Строкатз.дата<>датаДок или вид<>Строкатз.Вид Тогда Если док<>Неопределено Тогда док.ЗаполнитьСчетаУчетаВТабЧасти(док.Товары,"Товары",Истина,Истина); док.ЗаполнитьСчетаУчетаВТабЧасти(док.Услуги,"Услуги",Истина,Истина); док.КодВидаОперации = "01"; //Попытка // док.Записать(РежимЗаписиДокумента.Проведение); //Исключение док.Записать(РежимЗаписиДокумента.Запись); //КонецПопытки; КонецЕсли; датаДок=Строкатз.дата; вид=Строкатз.Вид; НомерДок="В"+"0"+вид+Формат(датаДок,"ДФ=ддММгг"); док=Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(НомерДок,датаДок); Если док.Пустая() Тогда док=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент(); док.Номер=НомерДок; док.Дата=НачалоДня(датаДок); Иначе док=док.ПолучитьОбъект(); док.Дата=НачалоДня(датаДок); КонецЕсли; док.Организация=Справочники.Организации.НайтиПоКоду("000000002").Ссылка; док.Контрагент=Контрагент; док.ДоговорКонтрагента=договор; док.ВидОперации=Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия; док.ВалютаДокумента=глрубли; док.КурсВзаиморасчетов=1; док.КратностьВзаиморасчетов=1; док.УчитыватьНДС=Истина; док.СуммаВключаетНДС=Истина; док.СпособЗачетаАвансов=Перечисления.СпособыЗачетаАвансов.Автоматически; док.СчетУчетаРасчетовСКонтрагентом=ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками; док.СчетУчетаРасчетовПоАвансам=ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным; Если вид=1 Тогда док.Комментарий="Картриджи"; док.Грузоотправитель=док.Контрагент; док.Грузополучатель=Справочники.Контрагенты.НайтиПоКоду("Н010505").Ссылка; ИначеЕсли вид=2 Тогда док.Комментарий="Услуги по картриджам"; ИначеЕсли вид=3 Тогда док.Комментарий="Услуги по сервису"; КонецЕсли; док.Склад=Справочники.Склады.НайтиПоКоду("000000001").Ссылка; док.ПредъявленСчетФактура=Истина; док.НДСПредъявленКВычету=Истина; док.НомерВходящегоСчетаФактуры=""; док.ДатаВходящегоСчетаФактуры=датаДок; док.КодВидаОперации = "01"; док.Товары.Очистить(); док.Услуги.Очистить(); КонецЕсли; Если Не Строкатз.Номенклатура.Услуга Тогда стр_т=док.Товары.Добавить(); Иначе стр_т=док.Услуги.Добавить(); КонецЕсли; стр_т.Номенклатура=Строкатз.Номенклатура; стр_т.Количество=Строкатз.Количество; ГСЧ = Новый ГенераторСлучайныхЧисел(1.1); СЧ=ГСЧ.СлучайноеЧисло(1.1,1.15); стр_т.Сумма=Строкатз.Сумма*СЧ; Если стр_т.Количество<>0 Тогда стр_т.Цена=Окр(стр_т.Сумма*СЧ/стр_т.Количество,2); Иначе стр_т.Цена=стр_т.Сумма*СЧ; КонецЕсли; стр_т.СтавкаНДС=Строкатз.СтавкаНДС; стр_т.СуммаНДС=Строкатз.СуммаНДС*СЧ; КонецЦикла; Если док<>Неопределено Тогда док.ЗаполнитьСчетаУчетаВТабЧасти(док.Товары,"Товары",Истина,Истина); док.ЗаполнитьСчетаУчетаВТабЧасти(док.Услуги,"Услуги",Истина,Истина); док.КодВидаОперации = "01"; //Попытка // док.Записать(РежимЗаписиДокумента.Проведение); //Исключение док.Записать(РежимЗаписиДокумента.Запись); //КонецПопытки; КонецЕсли; КонецПроцедуры Процедура КнопкаВыполнитьНажатие(Кнопка) ДатаН = НачалоМесяца(ТекущаяДата()); ДатаК = КонецМесяца(ТекущаяДата()); v77= Новый COMОбъект("v77s.Application"); Попытка ИмяИБ = "Торговля"; ПутьКИБ = "\\sql-srv\trade$\"; Открыта = V77.Initialize(v77.RMTrade, "/D""" + ПутьКИБ + """ /n Robot /p 123qaz", "NO_SPLASH_SHOW"); //Открыта=V77.Initialize(V77.RMTrade,"/D M:\","NO_SPLASH_SHOW"); Если НЕ Открыта Тогда Сообщить("Не удалось подключиться к базе"); Возврат; КонецЕсли; Исключение Сообщить("Не удалось подключиться к базе"); Возврат; КонецПопытки; коэф=1; тз1.Очистить(); док_реал=v77.CreateObject("Документ.Реализация"); док_реал_р=v77.CreateObject("Документ.РеализацияРозница"); СпрПром=v77.CreateObject("Справочник.Промежутки"); СпрНом1 = v77.CreateObject("Справочник.Номенклатура"); СпрНом2 = v77.CreateObject("Справочник.Номенклатура"); СпрНом3 = v77.CreateObject("Справочник.Номенклатура"); ном1=""; ном2=""; ном3=""; рез_=СпрНом1.НайтиПокоду("Н00000073",0); Если рез_=1 Тогда ном1=СпрНом1; КонецЕсли; рез_=СпрНом2.НайтиПокоду("19",0); Если рез_=1 Тогда ном2=СпрНом2; КонецЕсли; рез_=СпрНом3.НайтиПокоду("Н00001104",0); Если рез_=1 Тогда ном3=СпрНом3; КонецЕсли; //ТабДокумент = Новый ТабличныйДокумент; //макет = ПолучитьМакет("Таблица"); //Шапка = макет.ПолучитьОбласть("Шапка"); //ТабДокумент.Вывести(Шапка); Если док_реал.ВыбратьДокументы(ДатаН,ДатаК)=1 Тогда Пока док_реал.ПолучитьДокумент()=1 Цикл Если док_реал.Проведен()=0 Тогда Продолжить; КонецЕсли; Если Сокрлп(док_реал.фирма.Код)<>"00003" Тогда Продолжить; КонецЕсли; Если Найти(док_реал.НомерДок,"Д")<>0 Тогда Продолжить; КонецЕсли; Если СпрПром.НайтиПоРеквизиту("Промежутки",док_реал.Контрагент,0)=1 Тогда КонецЕсли; контр77=док_реал.Контрагент; Если контр77.ИНН<>1 Тогда //стр_=макет.ПолучитьОбласть("Строка"); //стр_.Параметры.ПечКонтр=контр77.Наименование; Часы=0; Минуты=0; Секунды=0; док_реал.ПолучитьВремя(Часы,Минуты,Секунды); //стр_.Параметры.ПечДок=док_реал.Вид()+" №"+док_реал.НомерДок+" от "+(док_реал.ДатаДок+Часы*60*60+Минуты*60+Секунды); //ТабДокумент.Вывести(стр_); Продолжить; КонецЕсли; рез_=док_реал.ВыбратьСтроки(); Если рез_=1 Тогда Пока док_реал.ПолучитьСтроку()=1 Цикл Если док_реал.Номенклатура.ПринадлежитГруппе(ном1)=1 Тогда Если НЕ ПустаяСтрока(ном1) Тогда ном_=СоздатьНоменклатура(док_реал.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=1; Иначе Продолжить; КонецЕсли; ИначеЕсли док_реал.Номенклатура.ПринадлежитГруппе(ном2)=1 Тогда Если НЕ ПустаяСтрока(ном2) Тогда ном_=СоздатьНоменклатура(док_реал.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=2; Иначе Продолжить; КонецЕсли; ИначеЕсли док_реал.Номенклатура.ПринадлежитГруппе(ном3)=1 Тогда Если НЕ ПустаяСтрока(ном2) Тогда ном_=СоздатьНоменклатура(док_реал.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=3; Иначе Продолжить; КонецЕсли; Иначе Продолжить; КонецЕсли; стр_тз.Дата=НачалоДня(док_реал.ДатаДок); стр_тз.Номенклатура=ном_.Ссылка; стр_тз.Количество=Окр(док_реал.Количество,3); Если док_реал.СуммаВклНДС=1 Тогда стр_тз.Сумма=Окр(док_реал.Сумма,2); Иначе стр_тз.Сумма=Окр(док_реал.Сумма,2)+Окр(док_реал.СуммаНДС,2); КонецЕсли; стр_тз.СтавкаНДС=ПолучитьСтавкуНДС(док_реал.СтавкаНДС.Идентификатор()); стр_тз.СуммаНДС=Окр(док_реал.СуммаНДС,2); КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; Если док_реал_р.ВыбратьДокументы(ДатаН,ДатаК)=1 Тогда Пока док_реал_р.ПолучитьДокумент()=1 Цикл Если док_реал_р.Проведен()=0 Тогда Продолжить; КонецЕсли; Если Сокрлп(док_реал_р.фирма.Код)<>"00003" Тогда Продолжить; КонецЕсли; Если Найти(док_реал_р.НомерДок,"Д")<>0 Тогда Продолжить; КонецЕсли; рез_=док_реал_р.ВыбратьСтроки(); Если рез_=1 Тогда Пока док_реал_р.ПолучитьСтроку()=1 Цикл Если док_реал_р.Номенклатура.ПринадлежитГруппе(ном1)=1 Тогда Если НЕ ПустаяСтрока(ном1) Тогда ном_=СоздатьНоменклатура(док_реал_р.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=1; Иначе Продолжить; КонецЕсли; ИначеЕсли док_реал_р.Номенклатура.ПринадлежитГруппе(ном2)=1 Тогда Если НЕ ПустаяСтрока(ном2) Тогда ном_=СоздатьНоменклатура(док_реал_р.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=2; Иначе Продолжить; КонецЕсли; ИначеЕсли док_реал_р.Номенклатура.ПринадлежитГруппе(ном3)=1 Тогда Если НЕ ПустаяСтрока(ном2) Тогда ном_=СоздатьНоменклатура(док_реал_р.Номенклатура); стр_тз=тз1.Добавить(); стр_тз.Вид=3; Иначе Продолжить; КонецЕсли; Иначе Продолжить; КонецЕсли; стр_тз.Дата=НачалоДня(док_реал_р.ДатаДок); стр_тз.Номенклатура=ном_.ссылка; стр_тз.Количество=Окр(док_реал_р.Количество,3); Если док_реал_р.СуммаВклНДС=1 Тогда стр_тз.Сумма=Окр(док_реал_р.Сумма,2); Иначе стр_тз.Сумма=Окр(док_реал_р.Сумма,2)+Окр(док_реал_р.СуммаНДС,2); КонецЕсли; стр_тз.СтавкаНДС=ПолучитьСтавкуНДС(док_реал_р.СтавкаНДС.Идентификатор()); стр_тз.СуммаНДС=Окр(док_реал_р.СуммаНДС,2); КонецЦикла; КонецЕсли; КонецЦикла; КонецЕсли; СоздатьПоступлениеСводное(тз1); v77 = ""; Сообщить("Загрузка завершена"); ЗавершитьРаботуСистемы(); КонецПроцедуры Процедура ПриОткрытии() глрубли=Константы.ВалютаРегламентированногоУчета.Получить(); тз1 = Новый ТаблицаЗначений; тз1.Колонки.Добавить("Дата"); тз1.Колонки.Добавить("Номенклатура"); тз1.Колонки.Добавить("Количество"); тз1.Колонки.Добавить("Сумма"); тз1.Колонки.Добавить("СтавкаНДС"); тз1.Колонки.Добавить("СуммаНДС"); тз1.Колонки.Добавить("Вид"); КнопкаВыполнитьНажатие(""); КонецПроцедуры