Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/119: Рейтинг темы: голосов - 119, средняя оценка - 4.82
Jommo26
1

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

04.05.2010, 14:52. Показов 21707. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На работе дали задание. не могу ни как придумать как его сделать. Есть прайс, есть справочник номенклатуры. В принципе все просто, а на самом деле не так. Прайсы бывают разные. оператор будет над каждой колонкой в прайсе ставить определенную букву. (пример Код = A артикул = B и т.д) и надо сделать внешнюю обработку которая будет по этим буквам опеределять в какой колонке что находится, потом сравнивать значениее со справочником и заносить цены в справочник.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2010, 14:52
Ответы с готовыми решениями:

Помогите с Xml выгрузкой
Всем добрый день! Подскажите, как в 1С 7.7 реализуется выгрузка многоуровнего справочника в xml...

Задача сравнить два прайса и выделить цену которая отличается от старого прайса
В общем задача. Есть четыре столбца - два с ценами, два с артикулами. Сочетаются попарно:...

помогите пожалуста
нужно вот что зделать !!1. За допомогою інтерпретатора формул у пакеті програм NUMERI записати...

Помогите пожалуста
Ребята если кто нить делал когда нить внешнюю обработку для загрузки прайса из екселя в справочник...

12
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
04.05.2010, 15:40 2
А в чем проблема-то? Найти пример загрузки из формата, который вы, кстати, не указали?)
0
Jommo26
04.05.2010, 15:50 3
Прайс экселевский конфигурация управление торговлей 10.3 Не могу сделать поиск пл файлу в экселе. Надо брать код из основной панели справочника и сравнивать его с экселевким файлом а потом если код савподает то из этой же строчки брать цену товара и заносить ее в справочник.
0 / 0 / 0
Регистрация: 28.04.2009
Сообщений: 69
04.05.2010, 16:02 4
Вам сюда
0
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
04.05.2010, 16:52 5
Цитата Сообщение от unknown181538
А в чем проблема-то? Найти пример загрузки из формата, который вы, кстати, не указали?)
Должен быть объект метаданных в котором будет храниться соответствие колонок файла и полей 1С. желательно табличного вида (ПВХ, Регистр сведений и т.п.). Сам механизм и пример загрузки вам уже предложили.
0
Jommo26
04.05.2010, 16:57 6
Я наверное точно блондинка нечего в голову нелезет. Вроде все форму сделала с экселя загрузила функцию расчета цены сделала а как связать со справочником немогу((( кто нить может выложить пример функции с поиском по экселю?

Добавлено: Как говорится не бери в голову бери в рот))))
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
04.05.2010, 17:05 7
Цитата Сообщение от Janna26
Добавлено: Как говорится не бери в голову бери в рот))))
Отсюда, пожалуйста, поподробней.
0
Jommo26
04.05.2010, 17:28 8
Это шутка) сижу уже 2 день над этой обработькай и нечего придумать немогу(
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
04.05.2010, 17:40 9
Цитата Сообщение от Janna26
сижу уже 2 день над этой обработькай
Измором берете?
0
Jommo26
04.05.2010, 17:54 10
vitfil
А ты шутник. Да вот сижу и думаю, что она сама напишется.
0 / 0 / 0
Регистрация: 23.04.2010
Сообщений: 553
05.05.2010, 00:42 11
Цитата Сообщение от Janna26
vitfil
А ты шутник. Да вот сижу и думаю, что она сама напишется.
Место не правильное, видимо.(с)

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


Код ( (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,НоваяСтрока.Сумма / НоваяСтрока.Количество);
НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + Число(СтрЗаменить(СуммаНДС,".",""));
КонецЕсли;
Состояние(Наименование);
Иначе
Продолжить;
КонецЕсли;

КонецЦикла;

ДокОбъект.ПолучитьФорму().Открыть();
0
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
05.05.2010, 00:49 12
А вот цены обычно заносят не в справочник, а в регистр сведений.
0
Bustyr
05.05.2010, 12:16 13
Ну человек, который будет заносить буквы А и Б, указывая в каких колонках находится артикул или код, будет делать это например в строке перед таблицей, а значит в чем проблема поиска?
Например:


Код
//Вырезка из кода Darlock


Для Column = 1 По ColumnCount Цикл
Если ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "А" тогда
КолонкаСКодом = Column;
ИначеЕсли ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "Б" тогда
КолонкаСАртикулом = Column;
КонецЕсли;
КонецЦикла;
А далее можно прочитать все остальные строки из файла, где уже находятся сами записи цены номенклатуры и осуществлять поиск без проблем.
05.05.2010, 12:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2010, 12:16
Помогаю со студенческими работами здесь

Помогите пожалуста с шифрованием..
Всем доброго вечера, не получается зашифровать в PasswordDlg пароль.Если я прогу скомпилирую и...

Error #56 Помогите пожалуста
ПОМОГИТЕ Невосстановимая ошибка базы данных X КОД: -56 Таблица: 1SUSERS Ошибка захвата таблицы для...

Помогите, пожалуста!!! С вирусами и программой.
На данный момент у меня &quot;ХР&quot;, когда я купила (1 год назад) свой ноутбук, у меня стоял &quot;виндовс 7&quot;...

Помогите пожалуста разобратся с функцией
Мне нужно создать функцию, которая возвращала бы сумму элементов побочной диагонали квадратной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru