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

Выгрузка произвольной накладной в формате dbf 8.2

Автор alex9910, 25 мар 2012, 01:07

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

alex9910

Цитата: sergejK74 от 25 мар 2012, 16:31
База.Date = Дата; (или Документ.Дата, зависит от твоего кода)
База.Number = Номер; (или Документ.Номер)
Как в дбф файл добавить поля дата и номер догадайся сам.

Спасибо! Все получилось

alex_1c_user

На ИмяТабличнойЧасти 1С также ругается - пишет "переменная не определена". Я понимаю, что переменной ИмяТабличнойЧасти нужно присвоить что-то типа Документ.РеализацияТоваровиУслуг.ТабличнаяЧасть, но не знаю синтаксиса языка, что нужно написать, чтобы заработало, подскажите, пожалуйста?

Код процедуры пишу в самом модуле документа РеализацияТоваровиУслуг, т.е. не внешняя обработка.

Конфигурация: 1С:Предприятие 8.2 (8.2.19.90), Бухгалтерия предприятия, редакция 2.0 (2.0.60.4)

cska-fanat-kz

Вместо "ИмяТабличнойЧасти" пишете ИМЯ ТАБЛИЧНОЙ ЧАСТИ!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

alex_1c_user

что вы имеете в  виду, объясните, пожалуйста, на примере.



Цитата: cska-fanat-kz от 31 окт 2014, 07:43
Вместо "ИмяТабличнойЧасти" пишете ИМЯ ТАБЛИЧНОЙ ЧАСТИ!

cska-fanat-kz

Если табличная часть называется "Товар", то и пишете "Товар"!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

alex_1c_user

Цитата: cska-fanat-kz от 31 окт 2014, 08:08
Если табличная часть называется "Товар", то и пишете "Товар"!

Благодарю вас. Получилось.

alex_1c_user

Вот, что в итоге получилось, вдруг кому-то пригодится:

Процедура ОсновныеДействияФормыDbf(Кнопка)
   
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогСохраненияФайла.ПолноеИмяФайла = "";
Текст = "ru = ""Текст""; en = ""Text""";
Фильтр = "ДБФ (*.dbf)|*.dbf";
ДиалогСохраненияФайла.Фильтр = Фильтр;
ДиалогСохраненияФайла.МножественныйВыбор = Ложь;
ДиалогСохраненияФайла.Заголовок = "Куда сохранять файл?";
   
   Если ДиалогСохраненияФайла.Выбрать() Тогда
ИмяФайла=ДиалогСохраненияФайла.ВыбранныеФайлы[0];
   Иначе
Предупреждение("Файл не выбран!");
   КонецЕсли;


   //Создаем объект
База = Новый XBase;

//Указываем кодировку
База.Кодировка = КодировкаXBase.OEM;

//Добавляем поля в DBF файл
База.Поля.Добавить ("INN_KONT","C",25,); //ИНН контрагента   
База.Поля.Добавить ("NOM_DOG","C",25,); //Номер договора       
База.Поля.Добавить ("DATE_DOG","C",25,); //Дата договора     
База.Поля.Добавить ("NOM_DOC","C",25,); //Номер накладной     
База.Поля.Добавить ("DATE_DOC","C",25,); //Дата накладной     
База.Поля.Добавить ("NOM_PP","C",25,); //Номер позиции в накладной 
База.Поля.Добавить ("PROD_NAME1","C",25,); //Наименование
База.Поля.Добавить ("ED_IZM","C",25,); //Единица измерения (наименование)
База.Поля.Добавить ("ED_IZMOKEY","C",25,); //Единица измерения (Код ОКЕИ)    .
База.Поля.Добавить ("KOL","N",14,3); //Количество
База.Поля.Добавить ("PRICE","N",14,3); //Цена без НДС
База.Поля.Добавить ("RATE_NDS","C",25,); //Ставка НДС
База.Поля.Добавить ("SUMM_NDS","N",14,3); //Сумма НДС
База.Поля.Добавить ("SUMM_TOTAL","N",14,3); //Сумма с НДС

//База.СоздатьФайл("D:\nakl.DBF");

Попытка
        База.СоздатьФайл(ИмяФайла);
    Исключение
        Сообщить("Ошибка создания файла "+ИмяФайла);
        Сообщить(""+ОписаниеОшибки());
    КонецПопытки;       
 

База.Записать();
//Очищаем файл
База.ОчиститьФайл();

//Если Товары
Для Каждого Стр из Товары Цикл
База.Добавить();
База.INN_KONT = Контрагент.ИНН;
База.NOM_DOG = ДоговорКонтрагента.Номер;
База.DATE_DOG = ДоговорКонтрагента.Дата;
База.DATE_DOC = Дата;
База.NOM_DOC = Номер;   
База.NOM_PP = Стр.НомерСтроки;
База.PROD_NAME1 = Стр.Номенклатура.Наименование;
База.ED_IZM = Стр.ЕдиницаИзмерения;   
База.ED_IZMOKEY = Стр.ЕдиницаИзмерения.Код;
База.KOL = Стр.Количество;
База.PRICE = Стр.Цена;
База.RATE_NDS = Стр.СтавкаНДС;
База.SUMM_NDS = Стр.СуммаНДС;
База.SUMM_TOTAL = Стр.Сумма + Стр.СуммаНДС;   
База.Записать();
КонецЦикла;

//Если Услуги
Для Каждого Стр из Услуги Цикл
База.Добавить();       
База.INN_KONT = Контрагент.ИНН;
База.NOM_DOG = ДоговорКонтрагента.Номер;
База.DATE_DOG = ДоговорКонтрагента.Дата;
База.DATE_DOC = Дата;
База.NOM_DOC = Номер;   
База.NOM_PP = Стр.НомерСтроки;
База.PROD_NAME1 = Стр.Номенклатура.Наименование;
//База.ED_IZM = Стр.ЕдиницаИзмерения;   
//База.ED_IZMOKEY = Стр.ЕдиницаИзмерения.Код;
База.KOL = Стр.Количество;
База.PRICE = Стр.Цена;
База.RATE_NDS = Стр.СтавкаНДС;
База.SUMM_NDS = Стр.СуммаНДС;
База.SUMM_TOTAL = Стр.Сумма + Стр.СуммаНДС; 
База.Записать();
КонецЦикла;


База.ЗакрытьФайл();

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


Проблемка еще возникла: если добавлять в базу дату в формате "D", т.е. База.Поля.Добавить ("DATE_DOG","D"), то в итоге в dbf файл попадает дата, где число и месяц перепутаны местами, т.е., например, в 1С дата документа 05.11.2014, а в dbf - 11.05.2014 получается. Подскажите, пожалуйста, куда копать?

Теги:

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

Рейтинг@Mail.ru

Поиск