Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 22:07

Помогите со счетами-фактурами!Пожалуйста!

Автор Иринка-картинка, 19 июл 2011, 15:58

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

Иринка-картинка

КонецЕсли;
            //Документ - ПоступлениеТоваров(ВОЗВРАТ)
            Если Число(СокрЛП(ДБФ1.KO))=6 Тогда
//               Если НайтиДокумент("РасходнаяНакладная","В"+СокрЛП(ДокНовыйНомер(ДБФ1.ND)),Дата(ДБФ1.DO))=1 Тогда
//                  Сообщить("Возврат номер "+"В"+СокрЛП(ДокНовыйНомер(ДБФ1.ND))+" от "+Дата(ДБФ1.DO)+ "уже загружена");   
//               КонецЕсли;

               
               Если НайтиДокумент("РасходнаяНакладная","В"+СокрЛП(ДокНовыйНомер(ДБФ1.ND)),Дата(ДБФ1.DO))=0 Тогда
                  Док=СоздатьОбъект("Документ.РасходнаяНакладная");
                  Док.Новый();
                  Док.ВерсияОбъекта = ВерсияОбъекта;
                  Док.НомерДок = "В"+СокрЛП(ДокНовыйНомер(ДБФ1.ND));
                  Док.ДатаДок = Дата(ДБФ1.DO);
                  Док.Контрагент = НайтиКонтрагентаПоИмени(Врег(СокрЛП(Лев(ДБФ1.PK,30))));
                  Дог=СоздатьОбъект("Справочник.Договоры");
                  Дог.ИспользоватьВладельца(Док.Контрагент);
                  Дог.ВыбратьЭлементы();
                  Пока Дог.ПолучитьЭлемент() = 1 Цикл
                     Док.Договор = Дог.ТекущийЭлемент();
                  КонецЦикла;
                  Док.МестоХранения = Константа.ОсновнойСклад;
                  Док.ВидОтгрузки = 3;
                  Док.УчитыватьНП = 0;
                  Док.ЗачитыватьАванс = 0;
                  Док.Курс = 1;
                  Док.ВариантРасчетаНалогов = Константа.ОсновнойВариантРасчетаНалоговОтгрузки;
                  Док.РасчетныйСчет = Константа.ОсновнойБанковскийСчет;
                  Док.ВерсияОбъекта = Константа.НомерРелиза;
                  Если ЕстьНДС=1 Тогда
                     Док.НДСвключатьВСтоимость = 1;
                  КонецЕсли;
                  //Док.ТипЦен = ;
                  Док.Грузоотправитель = "";
                  Док.Грузополучатель = Док.Контрагент;
                  Док.Комментарий = "Выгрузка из Дока-Склад";
                  ТЗТовары.ВыбратьСтроки();
                  Пока ТЗТовары.ПолучитьСтроку() = 1 Цикл
                     Если ТЗТовары.PN=СокрЛП(ДБФ1.PN2) Тогда
                        Док.НоваяСтрока();
                        Док.Товар = СоздатьТовар(ТЗТовары.KM,ТЗТовары.KM1,ТЗТовары.KM2);
                        Док.Количество = ТЗТовары.QF;
                        Если ЕстьНДС=1 Тогда
                           Док.Цена = ТЗТовары.CP/1.18;
                           Док.Сумма = ТЗТовары.SMP/1.18;
                           Док.НДС = ТЗТовары.SMP-ТЗТовары.SMP/1.18;
                           Док.Всего = ТЗТовары.SMP;
                        Иначе
                           Док.Цена = ТЗТовары.CP;
                           Док.Сумма = ТЗТовары.SMP;
                           Док.Всего = ТЗТовары.SMP;
                        КонецЕсли;
                     КонецЕсли;
                  КонецЦикла;
                  //Сообщить(Док);
                  Док.Записать();
               КонецЕсли;
            КонецЕсли;
            //Документ - Возврат от покупателя
            Если Число(СокрЛП(ДБФ1.KO))=3 Тогда
               Если НайтиДокумент("ПоступлениеТоваров",СокрЛП(ДокНовыйНомер(ДБФ1.ND)),Дата(ДБФ1.DO))=0 Тогда
                  Док=СоздатьОбъект("Документ.ПоступлениеТоваров");
                  Док.Новый();
                  Док.ВерсияОбъекта = ВерсияОбъекта;
                  Док.НомерДок = СокрЛП(ДокНовыйНомер(ДБФ1.ND));
                  Док.ДатаДок = Дата(ДБФ1.DO);
                  Док.Контрагент = НайтиКонтрагентаПоИмени(Врег(СокрЛП(Лев(ДБФ1.PK,30))));
                  Дог=СоздатьОбъект("Справочник.Договоры");
                  Дог.ИспользоватьВладельца(Док.Контрагент);
                  Дог.ВыбратьЭлементы();
                  Пока Дог.ПолучитьЭлемент() = 1 Цикл
                     Док.Договор = Дог.ТекущийЭлемент();
                  КонецЦикла;
                  Док.МестоХранения = Константа.ОсновнойСклад;
                  Док.ВидПоступления = 4;
                  Док.Курс = 1;
                  Док.ВариантРасчетаНалогов = Константа.ОсновнойВариантРасчетаНалоговОтгрузки;
                  Док.ВерсияОбъекта = Константа.НомерРелиза;
                  Док.НДСвключатьВСтоимость = 1;
                  //Док.ТипЦен = ;
                  Док.Комментарий = "Выгрузка из Дока-Склад";
                  ТЗТовары.ВыбратьСтроки();
                  Пока ТЗТовары.ПолучитьСтроку() = 1 Цикл
                     Если ТЗТовары.PN=СокрЛП(ДБФ1.PN2) Тогда
                        Док.НоваяСтрока();
                        Док.Товар = СоздатьТовар(ТЗТовары.KM,ТЗТовары.KM1,ТЗТовары.KM2);
                        Док.Количество = ТЗТовары.QF;
                        Если ЕстьНДС=1 Тогда
                           Док.Цена = ТЗТовары.CP/1.18;
                           Док.Сумма = ТЗТовары.SMP/1.18;
                           Док.НДС = ТЗТовары.SMP-ТЗТовары.SMP/1.18;
                           Док.Всего = ТЗТовары.SMP;
                        Иначе
                           Док.Цена = ТЗТовары.CP;
                           Док.Сумма = ТЗТовары.SMP;
                           Док.Всего = ТЗТовары.SMP;
                        КонецЕсли;
                     КонецЕсли;
                  КонецЦикла;
                  Сообщить(Док);
                  Док.Записать();
               КонецЕсли;
            КонецЕсли;

Иринка-картинка

//Документ -
//            Если (Врег(СокрЛП(ДБФ1.DOCVID))="") И (Лев(СокрЛП(ДБФ1.PK_MY),2)=Орг) Тогда
//               Если Врег(СокрЛП(ДБФ1.PK))=Врег(СокрЛП("Ежедневная реализация")) Тогда
//                  Если НайтиДокумент("РасходнаяНакладная",СокрЛП(ДокНовыйНомер(ДБФ1.ND)),Дата(ДБФ1.DO))=0 Тогда
//                     Док=СоздатьОбъект("Документ.РасходнаяНакладная");
//                     Док.Новый();
//                     Док.НомерДок = СокрЛП(ДокНовыйНомер(ДБФ1.ND));
//                     Док.ДатаДок = Дата(ДБФ1.DO);
//                     Док.Контрагент = НайтиКонтрагентаПоИмени(Врег(СокрЛП(Лев(ДБФ1.PK,30))));
//                     Дог=СоздатьОбъект("Справочник.Договоры");
//                     Дог.ИспользоватьВладельца(Док.Контрагент);
//                     Дог.ВыбратьЭлементы();
//                     Пока Дог.ПолучитьЭлемент() = 1 Цикл
//                        Док.Договор = Дог.ТекущийЭлемент();
//                     КонецЦикла;
//                     Док.МестоХранения = Константа.ОсновнойСклад;
//                     Док.ВидОтгрузки = 1;
//                     Док.УчитыватьНП = 0;
//                     Док.ЗачитыватьАванс = 0;
//                     Док.Курс = 1;
//                     Док.ВариантРасчетаНалогов = Константа.ОсновнойВариантРасчетаНалоговОтгрузки;
//                     Док.РасчетныйСчет = Константа.ОсновнойБанковскийСчет;
//                     Док.ВерсияОбъекта = Константа.НомерРелиза;
//                     Если ЕстьНДС=1 Тогда
//                        Док.НДСвключатьВСтоимость = 1;
//                     КонецЕсли;
//                     //Док.ТипЦен = ;
//                     Док.Грузоотправитель = "";
//                     Док.Грузополучатель = Док.Контрагент;
//                     Док.Комментарий = "Выгрузка из Дока-Склад";
//                     ТЗТовары.ВыбратьСтроки();
//                     Пока ТЗТовары.ПолучитьСтроку() = 1 Цикл
//                        Если ТЗТовары.PN=СокрЛП(ДБФ1.PN2) Тогда
//                           Док.НоваяСтрока();
//                           Док.Товар = СоздатьТовар(ТЗТовары.KM,ТЗТовары.KM1,ТЗТовары.KM2);
//                           Док.Количество = ТЗТовары.QF;
//                           Если ЕстьНДС=1 Тогда
//                              Док.Цена = ТЗТовары.CP/1.18;
//                              Док.Сумма = ТЗТовары.SMP/1.18;
//                              Док.НДС = ТЗТовары.SMP-ТЗТовары.SMP/1.18;
//                              Док.Всего = ТЗТовары.SMP;
//                           Иначе
//                              Док.Цена = ТЗТовары.CP;
//                              Док.Сумма = ТЗТовары.SMP;
//                              Док.Всего = ТЗТовары.SMP;
//                           КонецЕсли;
//                        КонецЕсли;
//                     КонецЦикла;
//                     Док.Записать();
//                     Сообщить(Док);
//                  КонецЕсли;
//               КонецЕсли;
//            КонецЕсли;
            Состояние(Строка(ДБФ1.НомерЗаписи())+"/"+Строка(КолвоСтрокДок));
            ДБФ1.Следующая();
         КонецЦикла;
      КонецЕсли;
   КонецЕсли;
   
   
   
   
   //*************ЗАГРУЗКА СПРАВОЧНИКА ТОВАРОВ ИЗ ТАБЛИЦЫ ОСТАТКОВ
   Если УслОст=1 Тогда
      Если (ФС.СуществуетФайл(ИмяКаталога+"\SprTv_Tr.DBF")=1) И (ФС.СуществуетФайл(ИмяКаталога+"\Skl03_Tr.DBF")=1) Тогда
         ДБФост=СоздатьОбъект("XBase");
         ДБФост.ОткрытьФайл(ИмяКаталога+"\Skl03_Tr.DBF");
         ТЗспр=СоздатьОбъект("ТаблицаЗначений");
         ТЗспр.НоваяКолонка("Код","Строка",10);
         ТЗспр.НоваяКолонка("Наименование","Строка",60);
         ТЗспр.НоваяКолонка("Родитель","Строка",30);
         Состояние("Загрузка кодов остатков");
         Пока ДБФост.ВКонце()=0 Цикл
            ТЗспр.НоваяСтрока();
            ТЗспр.Код = Врег(СокрЛП(ДБФост.KM));
            ДБФост.Следующая();
         КонецЦикла;
         ТЗспр.Свернуть("Код","Наименование,Родитель");
         ТЗспр.ВыбратьСтроки();
         ДБФспр=СоздатьОбъект("XBase");
         ДБФспр.ОткрытьФайл(ИмяКаталога+"\SprTv_Tr.DBF");
         ТЗтмп=СоздатьОбъект("ТаблицаЗначений");
         ТЗтмп.НоваяКолонка("Код","Строка",10);
         ТЗтмп.НоваяКолонка("Наименование","Строка",60);
         ТЗтмп.НоваяКолонка("Родитель","Строка",30);
         Состояние("Загрузка справочника наименований");
         Пока ДБФспр.ВКонце()=0 Цикл
            ТЗтмп.НоваяСтрока();
            ТЗтмп.Код=ДБФспр.KM;
            ТЗтмп.Родитель=ДБФспр.KG;
            ТЗтмп.Наименование=ДБФспр.NM;
            //Сообщить(ТЗтмп.Код);
            ДБФспр.Следующая();
         КонецЦикла;
         Состояние("Сортировка таблиц по коду");
         ТЗспр.Сортировать("Код");
         ТЗтмп.Сортировать("Код");
         ТЗспр.ВыбратьСтроки();
         ТЗтмп.ВыбратьСтроки();
         //Табл=СоздатьОбъект("Таблица");
         //Табл.Исходнаятаблица("Таблица");
         Пока ТЗспр.ПолучитьСтроку()=1 Цикл
            //Если ТЗтмп.НайтиЗначение(ТЗспр.Код,,"Код")=1 Тогда
            //   ТЗтмп.ПолучитьСтрокуПоНомеру(Стр);
            //   ТЗспр.Родитель=ТЗтмп.Родитель;
            //   ТЗспр.Наименование=ТЗтмп.Наименование;
            //Иначе
            //   Сообщить("Ошибка: не найден код товара "+ТЗспр.Код);
            //КонецЕсли;
            Найден=0;
            //ТЗтмп.ВыбратьСтроки();
            Пока ТЗтмп.ПолучитьСтроку()=1 Цикл
               Если ТЗтмп.Код=ТЗспр.Код Тогда
                  ТЗспр.Родитель=ТЗтмп.Родитель;
                  ТЗспр.Наименование=ТЗтмп.Наименование;
                  Найден=1;
                  Прервать;
               КонецЕсли;
            КонецЦикла;
            Если Найден=0 Тогда
               Сообщить("Ошибка: не найден код товара "+ТЗспр.Код);
            КонецЕсли;
            
            
            Состояние("Сопоставление таблиц: "+Строка(ТЗспр.НомерСтроки)+"/"+Строка(ТЗспр.КоличествоСтрок()) );
            //Табл.ВывестиСекцию("Строка");
         КонецЦикла;
         //Табл.Показать();
         ТЗспр.ВыбратьСтроки();
         Пока ТЗспр.ПолучитьСтроку()=1 Цикл
            Тмп=СоздатьТовар("Д"+ТЗспр.Код,ТЗспр.Наименование,ТЗспр.Родитель);
            Состояние("Добавление номенклатурных позиций: "+Строка(ТЗспр.НомерСтроки)+"/"+Строка(ТЗспр.КоличествоСтрок()) );
         КонецЦикла;
         
         
         
      КонецЕсли;
   КонецЕсли;
   
   
   
   
КонецПроцедуры
//***************************************************
Процедура ПриОткрытии()
   Усл1=1;
   Усл2=1;
   Усл3=1;
   ЕстьНДС=1;
   СчетДляАвансов=СчетПоКоду("41.1");
   ИмяКаталога="\\Lelik\C\Shop\PERED";
   Путь=ИмяКаталога;
КонецПроцедуры

sergejK74

Кусок кода очень большой. На первый взгляд ошибок нет. Не распечатывается счет фактура выгруженная уже этой обработкой?
Кнопочка Спасибо - слева!


prog1c7.7


Иринка-картинка


prog1c7.7

скинь базу на почту с выгруженными но не распечатанными СФ и обработку, посмотрю,а так не понятно что то

Иринка-картинка

я скинула)) Спасибо огромное за помощь! Я тоже буду дальше копаться до истины...

prog1c7.7

скинул уже вам, должно работать все

prog1c7.7

форуму:
ошибкой было в выгрузке назначать в основном договоре :

Дог.ВалютаДоговора = Константа.ОсновнаяВалюта;

это не надо, так как используется только рублевая оплата,
а 1с у них кратность по валюте стала запрашивать  <_< , её  (1с) можно понять, логичная - но все же женщина   :D

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск