//******************************************* // Подключение к БД // //******************************************* Процедура ИнициализацияАДО() Если фЕстьСоединение=1 Тогда Возврат; КонецЕсли; Соединение=СоздатьОбъект("ADODB.Connection"); НаборЗаписей=СоздатьОбъект("ADODB.Recordset"); //driver={Microsoft driver для Oracle}; НаборЗаписей1=СоздатьОбъект("ADODB.Recordset"); Соединение.ConnectionString="DSN=Oracle; uid=supermag;pwd=ПАРОЛЬ;"; Соединение.ConnectionTimeout = 600; Соединение.CursorLocation= 3; Попытка Соединение.Open(); Исключение Сообщить("Ошибка при инициализации АДО: "+ОписаниеОшибки()); фЕстьСоединение=1; Возврат; КонецПопытки; фЕстьСоединение=1; КонецПроцедуры
//******************************************* // Создание документа поступление товаров // //******************************************* Если Док.НайтиПоНомеру(пНомерДок,пДатаДок)=0 Тогда //новый Док.Новый(); Иначе //старый Если фЗамена=1 Тогда Док.УдалитьСтроки(); Док.Комментарий=""; Док.ДатаДок=0; Док.Контрагент =0; Док.Договор =0; Док.МестоХранения =0; Док.Сч41_1 =0; Док.НДСвключатьВСтоимость=0; Док.НомерДокВходящий=""; Док.ДатаДокВходящий=""; Иначе НаборЗаписей.MoveNext(); Продолжить; КонецЕсли; КонецЕсли; н=н+1; Док.НомерДок = пНомерДок; Док.ДатаДок = пДатаДок; Док.Контрагент = пКонтрагент; Если ПустоеЗначение(пКонтрагент)=0 Тогда Док.Договор = пКонтрагент.ОсновнойДоговор; КонецЕсли; Если Строка(ТблМХ.каСМ) = "1938" Тогда Док.МестоХранения = МХСкладПроизводства; КонецЕсли; Если Строка(ТблМХ.каСМ) = "2339" Тогда Док.МестоХранения = МХСкладПроизводстваТ; КонецЕсли; Док.Сч41_1 = СчетПоКоду(ТблМХ.сч); Док.НДСвключатьВСтоимость=1; Док.НомерДокВходящий=пНомерПоставщика; Док.ДатаДокВходящий=пДатаДок; Док.АвторБухгалтер =""+ИмяПользователя()+" "+ТекущаяДата()+" "+ТекущееВремя(); Док.АвторОператор = пПользователь; Док.НоваяСтрока(); Док.Товар = ВыбТовар; Док.Количество = 1; Док.Цена = пСумма; Док.Сумма = пСумма; Док.Всего = пСумма; Док.ТСчет = СчетПоКоду(ТблМХ.сч); попытка Док.Записать(); Сообщить("Поступление товаров №"+пНомерДок+" от "+пДатаДок+": документ записан"); ЗаписьЖурналаРегистрации("Документ записан обработкой Загрузка документов","Документ","Записан",Док.ТекущийДокумент(),2); Исключение Сообщить("Поступление товаров №"+пНомерДок+" от "+пДатаДок+": ошибка при записи: "+ОписаниеОшибки()) КонецПопытки; // Производство ///////////////////////////////////////////////// Если Строка(ТблМХ.каСМ) = "1938" Тогда //Создание документа счет-фактура полученный Если ДокС.НайтиПоНомеру(пНомерДок,пДатаДок)=0 Тогда //новый ДокС.Новый(); Иначе //старый Если фЗамена=1 Тогда ДокС.УдалитьСтроки(); ДокС.ДатаНомерСчетаФактуры =0; ДокС.ДокументОприходования =0; ДокС.ДатаОприходования =0; ДокС.Субсчет19 =0; ДокС.Контрагент =0; ДокС.Счет =0; ДокС.Субконто1 =0; ДокС.Субконто3 =0; ДокС.Субконто3 =0; ДокС.Всего =0; ДокС.СуммаБезНДС20 =0; ДокС.СуммаБезНДС10 =0; ДокС.НДС20 =0; ДокС.НДС10 =0; ДокС.СуммаСовсемБезНДС =0; ДокС.Договор =0; ДокС.Курс =0; ДокС.Сторно41 =0; ДокС.АвторБухгалтер =""; Иначе НаборЗаписей.MoveNext(); Продолжить; КонецЕсли; КонецЕсли; ДокС.НомерДок = пНомерДок; ДокС.ДатаДок = пДатаДок; ДокС.ФормироватьПроводки=1; ДокС.Комментарий="Авто"; ДокС.ДатаНомерСчетаФактуры = ""+пДатаСчетФактураПоставщика+" №"+пСчетФактураПоставщика; ДокС.ДокументОприходования = Док.ТекущийДокумент(); ДокС.ДатаОприходования = пДатаДок; ДокС.Субсчет19 = СчетПокоду("19.3"); ДокС.Контрагент = пКонтрагент; ДокС.Счет = СчетПоКоду("60.1"); ДокС.НазначитьТип("Субконто1","Справочник.Контрагенты"); ДокС.Субконто1 = пКонтрагент; ДокС.НазначитьТип("Субконто2","Справочник.Договоры"); Если ПустоеЗначение(пКонтрагент)=0 Тогда ДокС.Субконто2 = пКонтрагент.ОсновнойДоговор; ДокС.Договор =пКонтрагент.ОсновнойДоговор; КонецЕсли; ДокС.Субконто3 =0; ДокС.Всего =пСумма; ДокС.НДС20 =пНДС18; ДокС.НДС10 =пНДС10; ДокС.СуммаБезНДС20 = Окр(ДокС.НДС20*118/18,2)-ДокС.НДС20; ДокС.СуммаБезНДС10 = Окр(ДокС.НДС10*110/10,2)-ДокС.НДС10; пРасчСумма = ДокС.НДС20 + ДокС.НДС10 + ДокС.СуммаБезНДС20 + ДокС.СуммаБезНДС10 + ДокС.СуммаСовсемБезНДС; пРазница = пСумма-пРасчСумма; Если мод(пРазница)<1 Тогда Если ДокС.СуммаБезНДС20>0 Тогда ДокС.СуммаБезНДС20 = ДокС.СуммаБезНДС20 + пРазница; ИначеЕсли ДокС.СуммаБезНДС10>0 Тогда ДокС.СуммаБезНДС10 = ДокС.СуммаБезНДС10 + пРазница; КонецЕсли; КонецЕсли; ДокС.СуммаСовсемБезНДС =0; ДокС.Курс =1; ДокС.Сторно41 =1; ДокС.АвторБухгалтер =""+ИмяПользователя()+" "+ТекущаяДата()+" "+ТекущееВремя(); попытка ДокС.Записать(); Сообщить("Счет фактура №"+пНомерДок+" от "+пДатаДок+": документ записан"); ЗаписьЖурналаРегистрации("Документ записан обработкой Загрузка документов","Документ","Записан",Док.ТекущийДокумент(),2); Исключение Сообщить("Счет фактура №"+пНомерДок+" от "+пДатаДок+": ошибка при записи: "+ОписаниеОшибки()) КонецПопытки; КонецЕсли; Состояние("Обрабатываются поступления товаров за дату "+пДатаДок); НаборЗаписей.MoveNext(); КонецЦикла;