bookresearch.ru / Разработчику / Библиотека работы с ONIX XML / onix 1C supply sample /

Библиотека работы с ONIX XML: Пример выгрузки накладной ONIX XML из 1С

Untitled
// _____________________________________________________________________________
// Процедура выгрузки накладной. 
// Автор - Beer Artur 2004Y.
// _____________________________________________________________________________ 
Процедура XMLНакладная()          
        попытка
                // Создаем обьект для работы с XML.
                ХМЛ = СоздатьОбъект("onixxml.tonixxml");
                
                // Фирма1.ИНН - ИНН фирмы продавца.
                ХМЛ.Header.FromSAN = СокрЛП(Фирма1.ИНН);      
                // Фирма1 - объект фирмы продавца.
                ХМЛ.Header.FromCompany = СокрЛП(Фирма1);
                // Автор - имя пользователя от чъего имени была составлена накладная.
                ХМЛ.Header.FromPerson = СокрЛП(Автор);      
                // Клиент - Объект содержащий информацию о покупателе.
                // Клиент.ИНН - ИНН покупателя.
                ХМЛ.Header.ToSAN = СокрЛП(Клиент.ИНН);
                // Клиент.Наименование - Наименование покупателя.
                ХМЛ.Header.ToCompany = СокрЛП(Клиент.Наименование);
                // В поле ToPerson записывается имя получателя (в данном случае записываем 
                // наименование фирмы покупателя, так как мы отгружаем товар юридическому лицу).
                ХМЛ.Header.ToPerson = СокрЛП(Клиент.Наименование);
                // Записываем дополнительную информацию о документе.
                ХМЛ.Header.MessageNote = "Накладная / Generated by 1C [ XMLProcMod v1.0b (C) 2004 Beer Artur]";
                // В поле MessageNumber записываем номер сообщения. Я решил пойти простым путем
                // и записывать в это поле номер документа.
                ХМЛ.Header.MessageNumber = СокрЛП(НомерДок);
                // Номер повторного сообщения.
                ХМЛ.Header.MessageRepeat = 1; 
                // Устанавливаем дату сообщения.
                ХМЛ.Header.MessageDate = ТекущаяДата();  
                // Язык докумнта.
                ХМЛ.Header.DefaultLanguageOfText = "рус";
                
        Исключение
                
                // Вырабатываем исключение в случае если не была произведене решистрация 
                // библиотеки onixxml.dll в системе.            
                // Примечание: на вермя отладки советую этот блок выключить, так как он сработает
                // даже в случае любой другой ошибки и Вы будете долго ломать голову почему 
                // не установлена библиотека onixxml, так как Вы ее установили :D
                Сообщить("Не установлен COM-компонент onixxml.dll. Обратитесь к администратору БД.");
                Возврат;        
        КонецПопытки; 
                      
        // Создаем объект коммерческого документа, в который будут записаны данные из накладной.
        CommercialDocument = ХМЛ.CommercialDocuments.Add();
        // Выставляем тип документа который может принимать четыре вида:
        // 1 - Накладная (PayableBill)
        // 2 - Счет-фактуа (Invoice)
        // 3 - Заказ товара (Order)
        // 4 - Отпуск товара (Sale)
        // 5 - Возврат товара (BackSaale)   
        // Так как мы только продаем, соответственно тип документа у нас PayableBill
        CommercialDocument.DocumentType = 1;                                        
        // Устанавливаем номер документа.
        CommercialDocument.Number = СокрЛП(Строка(НомерДок));
        // Создаем объект контрагента продавца.
        Saler = CommercialDocument.Contragents.Add();
        // Role - роль контрагента. В данном случае значение 2 указывает что этот контрагент
        // играет роль продавца в этом документе (Saler).
        Saler.Role = 2;                                  
        // Инн контрагента.
        Saler.ID = Фирма1.ИНН;
        // Наименование контрагента.
        Saler.Name = СокрЛП(Фирма1.Наименование);
        // Создаем объект контрагента покупателя.
        Buyer = CommercialDocument.Contragents.Add();
        // Устанавливаем роль контрагента как роль получателя (Buyer).
        Buyer.Role = 1;                                               
        // ИНН Контрагента.
        Buyer.ID = Клиент.ИНН;                                                                 
        // Почтовый адрес контрагента.
        Buyer.Address = Клиент.ПочтовыйАдрес;
        // Имя получателя.      
        Buyer.Name = Клиент.Наименование;  
        // Пуь по умолчанию для выгружаемых документов XML.     
        Путь = "C:\Выгрузка\";
                                                           
        // Предлагаем пользователю изменить путь по умолчанию.
        Если ФС.ВыбратьКаталог(Путь, "Выберите каталог для сохранения файла",)=0 Тогда
                Возврат;
        КонецЕсли;     
                                                              
        // Выбираем строки из накладной с товаром.
        ВыбратьСтроки();
        Пока ПолучитьСтроку() = 1 Цикл 
                                                          
                // Создаем новую позицию в документе.
                Position = CommercialDocument.Positions.Add();
                // RecordReference - Артикул товара.
                Position.RecordReference = СокрЛП(Строка(Товар.Код));
                // Штрих код товара.
                Position.EAN13 = СокрЛП(Строка(Товар.ШтрихКод)); 
                // Количество товара по текущей позиции.
                Position.Amount = Количество;           
                // Цена товара.
                Position.Price = Цена;
                // Розничная цена ТД "Библио-Глобус".
                Position.RecommendedPrice = ЦенаГлобуса;
                // наименование товара.
                Position.ProductName = Нрег(Товар.Наименование);
                // Стандарт товара (штук в пачке/упаковке).
                Position.PackQuantity = Товар.Стандарт;
                // Добавляем в позицию раздел налогов :)
                Tax = Position.Taxes.Add();             
                // В строку TaxType пишем тип налога. В данном случае 2 (VAT - НДС). Поскольку мы не занимаемся
                // розничной продажей товара, я оставил 2 значением по умолчанию. Если Вы занимаетесь розничной
                // продажей, проверяйте тип отгрузки, если розничный, тогда устанавливайте значение 1 (НП).
                Tax.TaxType = 2;                                                                           
                // Получаем НДС в соответствии с датой документа.
                Tax.Rate = Лев(Товар.СтавкаНДС.Получить(ТекущаяДата()), 2);
                // Записываем дату из накладной.
                CommercialDocument.Date = ДатаДок;
        
        КонецЦикла; 
            // Сохраняем файл на диск.  Номер документа  - имя файла.
                ХМЛ.SaveToFile(Путь+"\"+СокрЛП(НомерДок)+".xml");                            
                // Сообщаем о том что документ успешно выгружен.
                Сообщить("Файл успешно выгружен в каталог " + Путь + "\"+ НомерДок + ".xml");
        
КонецПроцедуры


www.bookresearch.ru
Home  : Издателю и книготорговцу : Библиографу : Разработчику : IT-менеджеру : О проекте : Форум : Software - программное обеспечение для книжной отрасли :

  дизайн —
  SiteBuilder.ru

Home  Издателю и книготорговцу Библиографу Разработчику IT-менеджеру О проекте Форум Software - программное обеспечение для книжной отрасли

Этот сайт создан при помощи программы Globus SiteBuilder
Этот сайт создан при помощи программы Globus SiteBuilder