Помогите пожалуста с выгрузкой прайса

Тема в разделе "1C и всё что с ней связано", создана пользователем Janna26, 5 май 2010.

Наш партнер Genesis Hackspace
  1. Janna26

    Janna26 Гость

    На работе дали задание. не могу ни как придумать как его сделать. Есть прайс, есть справочник номенклатуры. В принципе все просто, а на самом деле не так. Прайсы бывают разные. оператор будет над каждой колонкой в прайсе ставить определенную букву. (пример Код = A артикул = B и т.д) и надо сделать внешнюю обработку которая будет по этим буквам опеределять в какой колонке что находится, потом сравнивать значениее со справочником и заносить цены в справочник.
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А в чем проблема-то? Найти пример загрузки из формата, который вы, кстати, не указали?)
     
  3. Janna26

    Janna26 Гость

    Прайс экселевский конфигурация управление торговлей 10.3 Не могу сделать поиск пл файлу в экселе. Надо брать код из основной панели справочника и сравнивать его с экселевким файлом а потом если код савподает то из этой же строчки брать цену товара и заносить ее в справочник.
     
  4. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
  5. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Должен быть объект метаданных в котором будет храниться соответствие колонок файла и полей 1С. желательно табличного вида (ПВХ, Регистр сведений и т.п.). Сам механизм и пример загрузки вам уже предложили.
     
  6. Janna26

    Janna26 Гость

    Я наверное точно блондинка нечего в голову нелезет. Вроде все форму сделала с экселя загрузила функцию расчета цены сделала а как связать со справочником немогу((( кто нить может выложить пример функции с поиском по экселю?

    Добавлено: Как говорится не бери в голову бери в рот))))
     
  7. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Отсюда, пожалуйста, поподробней.
     
  8. Janna26

    Janna26 Гость

    Это шутка) сижу уже 2 день над этой обработькай и нечего придумать немогу(
     
  9. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Измором берете?
     
  10. Janna26

    Janna26 Гость

    vitfil
    А ты шутник. Да вот сижу и думаю, что она сама напишется.
     
  11. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Место не правильное, видимо.(с)

    Я сделал бы так:

    Код ( (Unknown Language)):
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    xlLastCell = 11;
    НомерЛистаExcel = 1;

    ВыбФайл = Новый Файл(ИмяФайла);
    Если НЕ ВыбФайл.Существует() Тогда
    Сообщить("Файл не существует!");
    КонецЕсли;

    Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Состояние("Обработка файла Microsoft Excel...");
    ExcelЛист = Excel.Sheets(НомерЛистаExcel);
    Исключение
    Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
    КонецПопытки;

    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;

    ТЗ = Новый ТаблицаЗначений;
    Для Column = 1 По ColumnCount Цикл
    Тз.Колонки.Добавить("Колонка" + Column);
    КонецЦикла;


    Для Row = 1 По RowCount Цикл
    НоваяСтрока = Тз.Добавить();

    Для Column = 1 По ColumnCount Цикл
    НоваяСтрока["Колонка" + Column] = ExcelЛист.Cells(Row,Column).Value;
    КонецЦикла;

    КонецЦикла;

    Excel.WorkBooks.Close();
    Excel = 0;


    ДокОбъект = Докссылка.ПолучитьОбъект();

    Для Каждого ТекущаяСтрока Из Тз Цикл

    Наименование = ТекущаяСтрока["Колонка12"];
    Артикул = СокрЛП(СтрЗаменить(Строка(ТекущаяСтрока["Колонка11"])," ",""));
    НомерВхДок = ТекущаяСтрока["Колонка9"];
    Количество = ТекущаяСтрока["Колонка13"];
    ЕдИзмерения = ТекущаяСтрока["Колонка14"];
    Цена = ТекущаяСтрока["Колонка15"];
    Сумма = ТекущаяСтрока["Колонка16"];
    СтавкаНДС = ТекущаяСтрока["Колонка17"];
    СуммаНДС = ТекущаяСтрока["Колонка18"];
    Всего = ТекущаяСтрока["Колонка19"];
    СтранаГТД = ТекущаяСтрока["Колонка21"];
    ГТДТовара = ТекущаяСтрока["Колонка22"];

    Если СокрЛП(ДокОбъект.ВхДокНомер) = "" Тогда
    ДокОбъект.ВхДокНомер = СтрЗаменить(СокрЛП(НомерВхДок)," ","");
    КонецЕсли;

    СпрЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",СокрЛП(Артикул));
    Если СокрЛП(Артикул) <> "" Тогда
    Если СпрЭлемент = Справочники.Номенклатура.ПустаяСсылка() Тогда
    СпрЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
    СпрЭлемент.УстановитьНовыйКод();
    СпрЭлемент.Родитель = СпрРодитель;
    СпрЭлемент.ОбработкаЗаполнения("");
    СпрЭлемент.Наименование = Наименование;
    СпрЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    СпрЭлемент.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
    СпрЭлемент.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар;
    СпрЭлемент.ТипНоменклатуры = Справочники.ТипыНоменклатуры.Штучный;

    СпрЭлемент.Артикул = Артикул;
    СпрЭлемент.Записать();
    СпрЭлемент = СпрЭлемент.Ссылка;
    Сообщить("Создан новый элемент: " + Наименование + ", " + Артикул);
    КонецЕсли;
    КолВо = Число(Количество);
    НоваяСтрока = ДокОбъект.Товары.Найти(СпрЭлемент, "Номенклатура");
    Если НоваяСтрока = Неопределено Тогда
    НоваяСтрока = ДокОбъект.Товары.Добавить();
    НоваяСтрока.Номенклатура = СпрЭлемент;
    НоваяСтрока.Количество = Колво;
    НоваяСтрока.КоличествоБазовое = Колво;
    НоваяСтрока.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    НоваяСтрока.Коэффициент = 1;
    НоваяСтрока.Цена = Число(СтрЗаменить(Цена,".",""));
    НоваяСтрока.Сумма = Число(СтрЗаменить(Сумма,".",""));
    НоваяСтрока.СуммаНДС = Число(СтрЗаменить(СуммаНДС,".",""));
    НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
    стрГТД = Справочники.ГТД.НайтиПоНаименованию(СокрЛП(ГТДТовара));
    Если стрГТД = Справочники.ГТД.ПустаяСсылка() Тогда
    стрГТД = Справочники.ГТД.СоздатьЭлемент();
    стрГТД.УстановитьНовыйКод();
    стрГТД.Наименование = СокрЛП(ГТДТовара);
    стрГТД.Страна = Справочники.КлассификаторСтранМира.НайтиПоНаименованию(СокрЛП(СтранаГТД));
    стрГТД.Записать();
    стрГТД = стрГТД.Ссылка;
    КонецЕсли;

    НоваяСтрока.ГТД = стрГТД;

    НоваяСтрока.СуммаВсего = Число(СтрЗаменить(Всего,".",""));
    Иначе
    НоваяСтрока.Количество = НоваяСтрока.Количество + Колво;
    НоваяСтрока.КоличествоБазовое = НоваяСтрока.КоличествоБазовое + Колво;
    НоваяСтрока.СуммаВсего = НоваяСтрока.СуммаВсего + Число(СтрЗаменить(Всего,".",""));

    НоваяСтрока.Сумма = НоваяСтрока.Сумма + Число(СтрЗаменить(Сумма,".",""));
    НоваяСтрока.Цена = ?(НоваяСтрока.Количество = 0,0,НоваяСтрока.Сумма / НоваяСтрока.Количество);
    НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + Число(СтрЗаменить(СуммаНДС,".",""));
    КонецЕсли;    
    Состояние(Наименование);
    Иначе
    Продолжить;
    КонецЕсли;

    КонецЦикла;

    ДокОбъект.ПолучитьФорму().Открыть();
     
  12. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А вот цены обычно заносят не в справочник, а в регистр сведений.
     
  13. Buster

    Buster Гость

    Ну человек, который будет заносить буквы А и Б, указывая в каких колонках находится артикул или код, будет делать это например в строке перед таблицей, а значит в чем проблема поиска?
    Например:

    Код (Text):
    //Вырезка из кода Darlock


    Для Column = 1 По ColumnCount Цикл
    Если ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "А" тогда
    КолонкаСКодом = Column;
    ИначеЕсли ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "Б" тогда
    КолонкаСАртикулом = Column;
    КонецЕсли;
    КонецЦикла;
    А далее можно прочитать все остальные строки из файла, где уже находятся сами записи цены номенклатуры и осуществлять поиск без проблем.
     
Загрузка...
Похожие Темы - Помогите пожалуста выгрузкой
  1. qwertys
    Ответов:
    6
    Просмотров:
    159
  2. otokys
    Ответов:
    0
    Просмотров:
    44
  3. Nicolay
    Ответов:
    5
    Просмотров:
    136
  4. Տօօօօշ
    Ответов:
    1
    Просмотров:
    111
  5. сергей799
    Ответов:
    2
    Просмотров:
    103

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