8.х Возможность программы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ИринаСМ, 23 сен 2010.

  1. TopicStarter Overlay
    ИринаСМ
    Offline

    ИринаСМ Опытный в 1С

    Регистрация:
    23 апр 2010
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Пожалуйста, проконсультируйте насчет вопроса:
    1) Создаем документ;
    2) Загружаем в него данные из внешнего источника(файла .xls). Возможно ли автоматизировать загрузку. И как это сделать? Спасибо!
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Вот так например:
    Код:
    Процедура КоманднаяПанельТоварыЗаполнитьПоФайлуExcel(Кнопка)
    Если Товары.Количество() > 0 ИЛИ Услуги.Количество() Тогда
    Ответ = Вопрос("При заполнении все введенные строки буду удалены! Продолжить?", РежимДиалогаВопрос.ДаНет);
    Если Ответ <> КодВозвратаДиалога.Да Тогда
    Возврат;
    КонецЕсли;
    Товары.Очистить();
    Услуги.Очистить();
    КонецЕсли;
    
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.ПолноеИмяФайла = "";
    Фильтр = "Файл Excel (*.xls)|*.xls";
    ДиалогОткрытияФайла.Фильтр = Фильтр;
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
    ДиалогОткрытияФайла.Заголовок = "Выберите файл для загрузки";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
    ФайлЗагрузкиИмя = ДиалогОткрытияФайла.ПолноеИмяФайла;
    Иначе
    Предупреждение("Файл не выбран!");
    Возврат;
    КонецЕсли;
    
    Попытка
    ExcelObj = Новый COMОбъект("Excel.Application");
    //Укажите свой путь к Excel файлу!!!
    РабочаяКнига = ExcelObj.WorkBooks.Open(ФайлЗагрузкиИмя);
    Лист = РабочаяКнига.Sheets(1);
    Исключение
    Сообщить("Ошибка при зарузке файла - " + ОписаниеОшибки());
    КонецПопытки;
    КоличествоСтрок = Лист.Cells(1,1).SpecialCells(11).Row;
    
    Для К = 19 по КоличествоСтрок Цикл
    Если НЕ ПустаяСтрока(СокрЛП(Лист.Cells(К,2).Value)) Тогда
    Код = СокрЛП(Лист.Cells(К,1).Value);
    Номенклатура = СокрЛП(Лист.Cells(К,2).Value);
    Количество = Число(СокрЛП(Лист.Cells(К,4).Value));
    СтавкаНДС = Лев(СокрЛП(Лист.Cells(К,6).Value), СтрДлина(СокрЛП(Лист.Cells(К,6).Value)) - 1);
    Сумма = Число(СокрЛП(Лист.Cells(К,8).Value));
    СуммаНДС = Окр(Число(СокрЛП(Лист.Cells(К,7).Value)), 2, 1);
    
    СпрНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
    Если СпрНоменклатура.Пустая() Тогда
    СпрНоменклатура = Справочники.Номенклатура.НайтиПоРеквизиту("КодСинхронизации", Код);
    Если СпрНоменклатура.Пустая() Тогда
    Сообщить("" + Номенклатура + " с кодом """ + Код + """ (" + Количество + ") на сумму " + Сумма + " в т.ч. НДС " + СтавкаНДС + "% " + СуммаНДС);
    Сообщить("Не найдена номенклатура в справочнике!", СтатусСообщения.Важное);
    Продолжить;
    КонецЕсли;
    КонецЕсли;
    
    Если СпрНоменклатура.Услуга Тогда
    НоваяСтрока = Услуги.Добавить();
    НоваяСтрока.Номенклатура = СпрНоменклатура;
    ЗаполнитьСчетаУчетаВСтрокеТабЧастиУслуги(НоваяСтрока, ИСТИНА, ОтражатьВНалоговомУчете);
    ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(НоваяСтрока, ЭтотОбъект, мВалютаРегламентированногоУчета);
    ОбработкаТабличныхЧастей.ЗаполнитьСодержаниеТабЧасти(НоваяСтрока, ЭтотОбъект);
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, ЭтотОбъект, 1);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    
    НоваяСтрока.Количество = Количество;
    НоваяСтрока.Сумма = Сумма;
    ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(НоваяСтрока, ЭтотОбъект, 1);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    
    НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС["НДС" + СтавкаНДС];
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    
    НоваяСтрока.СуммаНДС = СуммаНДС;
    Иначе
    НоваяСтрока = Товары.Добавить();
    НоваяСтрока.Номенклатура = СпрНоменклатура;
    ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, ЭтотОбъект);
    ОбработкаТабличныхЧастей.ЗаполнитьНомерГТДИСтрануПроисхождения(НоваяСтрока, Ложь, Организация, Дата);
    ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрока, "Товары", Истина, ОтражатьВНалоговомУчете);
    ПриИзмененииНоменклатурыТоваров(НоваяСтрока);
    ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, ЭтотОбъект);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    СчетБУ = НоваяСтрока.СчетДоходовБУ;
    СчетНУ = НоваяСтрока.СчетДоходовНУ;
    
    НоваяСтрока.Количество = Количество;
    НоваяСтрока.Сумма = Сумма;
    ОбработкаТабличныхЧастей.ПриИзмененииСуммыТабЧасти(НоваяСтрока, ЭтотОбъект);
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    
    НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС["НДС" + СтавкаНДС];
    ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, ЭтотОбъект);
    
    НоваяСтрока.СуммаНДС = СуммаНДС;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    КонецПроцедуры
    
    
  3. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.644
    Симпатии:
    948
    Баллы:
    204
    Смотря что вы подразумеваете под автоматизацией. Вот Вам написали код который грузит,можете использоваь различные обработки для загрузки ТЧ. А может вам надо что бы система раз в час сама обращалась к данному файлу и плодила документы. Автоматизация - понятие обширное
  4. TopicStarter Overlay
    ИринаСМ
    Offline

    ИринаСМ Опытный в 1С

    Регистрация:
    23 апр 2010
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    наверное правильнее будет создавать документ руками, и выбирать загружаемый фал
  5. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.568
    Симпатии:
    717
    Баллы:
    204
    ....не спортивно :)
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.644
    Симпатии:
    948
    Баллы:
    204
    Как правильнее - это как вы сами себе задачу поставите. Если есть в файле данные для заполнения шапки документа, то можно и сразу создавать документ обработкой.

Поделиться этой страницей