1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
Hammond 07.10.20 - 19:19 | Добрый Вечере. Нужна помощь новичку 1с.
есть задание, суть которого: 1. создание внешней обработки 2. сделать поле "путь к файлу", при помощи которого через диалоговое окно windows указать на файл, который при нажатии на "открыть" открывается 3. сделать поле вид цены, которая через вложенный список показывает виды цены, находящиеся в документах 4. Ключ поиска, вложенный список с заранее известными атрибутами 5. Перезапись дублей. булево значение, должно быть истинно 6. сделать на форме кнопку "загрузить" Это все я сделал, но столкнулся с трудностями дальше При нажатии на кнопку «Загрузить» указанный файл считывается, и для каждой строчки создается отдельный элемент справочника «Номенклатура». При этом загружается изображение товара и устанавливается основным для карточки товара. В справочнике «Номенклатура» должна строиться иерархия товаров в соответствии с данными в файле (колонка «Группа»). Для каждого товара должна регистрироваться цена продажи по выбранному виду цен. Перед загрузкой данных по товару должен происходить поиск по указанному пользователем ключу. Если товар найден в справочнике, то проверяется флаг «Перезаписывать дубли». Если флаг установлен – найденный элемент перезаполняется, иначе просто пропускается. Если такой товар не найден, то создается новый товар. Помогите с кодом, не понимаю, как это сделать | ||
МихаилМ 1 - 07.10.20 - 19:24 | вы каждый день тут попрошайничаете | ||
Hammond 2 - 07.10.20 - 19:27 | бывает иногда) | ||
hhhh 3 - 07.10.20 - 19:39 | (2) на сайте 1clancer пишешь задачу, тебе за пару часов сделают. И по цене там немного, пару-тройку тысяч. | ||
Hammond 4 - 07.10.20 - 19:47 | Да я понимаю, что можно купить работу, но я сам хочу разобраться с ней.
просто нуждаюсь в каких-то советах по выполнению. мне бы разобраться с кнопкой загрузить, чтобы она считывала и записывала, все остальное я, думаю, сделаю сам. читал много всего в интернете, писал некоторый функции, но сталкивался с проблемами, которые не в силах пофиксить. | ||
Chameleon1980 5 - 07.10.20 - 19:50 | ну и пиши что не получается, а не всю портянку с заланием | ||
Hammond 6 - 07.10.20 - 19:59 | Хорошо
использую данный код для Выбора файла, все работает &НаКлиенте Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка=ложь; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл"; Диалог.ПолноеИмяФайла = ""; Фильтр = "XLSX (*.xlsx)|*.xlsx"; Диалог.Фильтр = Фильтр; Диалог.МножественныйВыбор = Ложь; Диалог.Каталог = "C:\"; Если Диалог.Выбрать() Тогда Объект.ПутьКФайлу = Диалог.ПолноеИмяФайла; КонецЕсли; КонецПроцедуры дальше при помощи данного кода открываю файл для просмотра Процедура ПутьКФайлуОткрытие(Элемент, СтандартнаяОбработка) // текСтрока = Элементы.Выбрать.ТекущаяСтрока; ИмяФайла = Объект.ПутьКФайлу; ЗапуститьПриложение(ИмяФайла); КонецПроцедурыэто все работает легко и понятно. дальше использую найденный в интернете код: Функция ИзExcelВТаблицу(Объект.ПутьКФайлу, НомерСтраницы = 1, ПерСтрокаЗаголовок = Ложь , ФормаИндикатора = Неопределено) Попытка Док = ПолучитьCOMОбъект(Объект.ПутьКФайлу); Исключение Сообщить("Произошла ошибка при обращение к Excel:" + Символы.ПС + ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; ЗакрытьФормуИндиктаора = Ложь; Если ФормаИндикатора = Неопределено тогда ЗакрытьФормуИндиктаора = Истина; // ФормаИндикатора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных"); ФормаИндикатора.Открыть(); КонецЕсли; ФормаИндикатора.КомментарийЗначения = "Загрузка данных из Excel..."; ТЗ = Новый ТаблицаЗначений(); Страница = Док.Sheets(НомерСтраницы); МакСтрок = Страница.UsedRange.Rows.Count; // макс. колич. строк МакСтолб = Страница.UsedRange.Columns.Count;  // макс. колич. столбцов Для Столбец = 1 по МакСтолб цикл ИмяСтолбца = "Столбец_" + Столбец; Если ПерСтрокаЗаголовок тогда ИмяСтолбца = Страница.Cells(1,Столбец).Value; ИмяСтолбца = СокрЛП(ИмяСтолбца); ИмяСтолбца = СтрЗаменить(ИмяСтолбца," ","_"); КонецЕсли; ТЗ.Колонки.Добавить(ИмяСтолбца, Новый ОписаниеТипов("Строка")); КонецЦикла; НачальнаяСтрока = 1; Если ПерСтрокаЗаголовок тогда НачальнаяСтрока = 2; КонецЕсли; Для НомСтрока = НачальнаяСтрока по МакСтрок цикл СтрТЗ = ТЗ.Добавить(); Для НомСтолбец = 1 по МакСтолб цикл Данные = Страница.Cells(НомСтрока,НомСтолбец).Value; СтрТЗ[НомСтолбец-1] = Данные; КонецЦикла; ФормаИндикатора.ЭлементыФормы.Индикатор.Значение = НомСтрока/МакСтрок * 100; КонецЦикла; Если ЗакрытьФормуИндиктаора тогда ФормаИндикатора.Закрыть(); КонецЕсли; Возврат ТЗ; КонецФункцииРугается на "Объект.ПутьКФайлу" в параментрах процедуры. там нужно указать путь до файла exel, который у меня хранится в объект.путькфайлу, но указать его не получается | ||
acht 7 - 07.10.20 - 20:03 | (4) > читал много всего в интернете, писал некоторый функции,
Ну, значит, о синтаксе параметров процедур и функций знаешь. Продолжай. | ||
Hammond 8 - 07.10.20 - 20:43 | разместил в модуле объекта
Функция ИзExcelВТаблицу(ИмяФайла, НомерСтраницы = 1, ПерСтрокаЗаголовок = Ложь , ФормаИндикатора = Неопределено) Экспорт
и Функция ЭлементСправочника(Номенклатура = "",ИмяЭлемента, ИмяРодителя = Неопределено, Параметры = Неопределено, СоздатьЕслиНетЭлемента=Истина) Экспорт
в модуле формы написал
&НаСервере
Процедура ЗагрузитьОбъект()
ЗагрузитьОбъект = РеквизитФормыВЗначение("Объект");
ЗагрузитьОбъект.ИзExcelВТаблицу ();
ЗагрузитьОбъект.ЭлементСправочника ();
КонецПроцедуры
&НаКлиенте
Процедура Загрузить(Команда)
ПроверитьЗаполнение();
ЗагрузитьОбъект();
КонецПроцедуры
Все сохраняется, но при нажатии на кнопку загрузить появляется ошибка "Недостаточно фактических параметров" | ||
lEvGl 9 - 07.10.20 - 23:32 | А со списком видов цен сделал? Как? | ||
hhhh 10 - 07.10.20 - 23:42 | (8) посчитай сколько параметров ты здесь задал
ЗагрузитьОбъект.ИзExcelВТаблицу (); и сколько должно быть. | ||
Злопчинский 11 - 07.10.20 - 23:49 | (0) то что ты написал это есть практически штатная УНФ "загрузка из внешних источников". | ||
Chameleon1980 12 - 08.10.20 - 05:25 | копипастеры, которые даже задумываться не хотят | ||
Alexsandriv 13 - 04.12.20 - 16:00 | Hammond у тебя получилась программа? |
|
Список тем форума |