#0
by Anderson
Знаю что обсуждений было куча, и перечитал много статей. Но все же вопрос остается открытым. Есть прайс номенклатуры вложенностью 7 или 8 уровней. Элементы можно отследить по артикулу, а вот с группами проблема. Знаю только уровень вложения, а вот определить родителя этого уровня не получается т.к. верхних уровней тоже может быть несколько штук. Собственно вопрос: возможно ли как-то из Excel вытащить кроме уровня еще и родителя и как это сделать. Может у кого-то есть альтернативные решения!
#7
by Eugeneer
есть у меня определитель таких прайсов и групп в них. Алгоритм несложный. Но я пока делал три (можно сделать и 8).
#8
by Anderson
По виду это типовый прайс из УТ т.е.: Группа1.2 Группа1.2.1.1 Элемент1... Группа1.2.1.2 Элемент2... Группа1.2.2 ..... Группа1.3 ..... Группа2 Группа2.1 ..... Группа2.2
#10
by izekia
lol то есть у тебя отдельная обработка на каждый уровень?) у каждой отдельно взятой группы или элемента можно определить родителя?
#11
by Eugeneer
все понятно. короче у тебя в прайсе есть колонка с номенклатурой. в ней и товары и папки. ты хочешь загрузить все по иерархии. нормальная хотелка каждого))
#12
by Eugeneer
нет у меня обработка которая считывает три группы. пока максимум что встречалось у клиентов. но если надо 8 то можно и под 8 чделать. количество роли не играет. ну чуток кода будет больше.
#13
by Happy Bear
пару дней назад писал загрузку. Задал количество уровней иерархии, на каждый уровень прописал номер колонки. Родителя ищу в цикле по наименованию.
#14
by Eugeneer
если у тебя такая структура - вычисляй по количеству пробелов. ответ на лицо. У меня нет пробелов у меня прайсы попадаются где все идет сплошным списком. Пришлось писать модуль по определению групп и иеархии
#19
by Eugeneer
Все гораздо проще. У групп в прайсах как правило нет какого то заполненного поля. Единицы, количества. При пробежке мы это можем получить. Потом все просто оказывается. Получили строку (нет единицы) аха - это группа. Бежим след строка - нет - аха это вторая группа. И т.д. Таким образорм получаем группы. Для связки (т.е. аха 1 группа, 2 группа и т.д.) Заводим переменные. То есть на первой группе - аха это группа - в переменную ПОлучили вторую группу - аха -0 в другую переменную. Потом у нас получится переменные которые друг другу родители. Как только вышли на товар. - аха это товар. Значит все переменные свыше - его группы. Бегим пока после товаров опять группа не попадется. Обунляем переменные. Опять считываем.
#21
by Eugeneer
надо иметь нормальную купленную разработку сделанную мной))) Чем больше таких поставщиков тем у меня больше заработок ))
#25
by Eugeneer
так через временные переменный ты их все получаешь. Перем Родитель1, Родитель 2 и т.д.
#27
by izekia
ну если отступ больше, значит группа подчиненная и наоборот + проблема в том месте, где кончаются товары и появляется группа, сложно будет определить ее уровень
#30
by Eugeneer
у тебя переменные строк. которые хранятся пока не будет определена строка с товаром и опять найдена очередная группа. Ясень пень что после строки с товаром если опять попалась группа. значит все переменные обнуляем. А до этого времени все переменные это группы. Просто проверяем заполненность переменных. Получается Родитель1 Родитель2 Родитель3 и т.д. Все они между собой связаны.
#31
by mikecool
короче - задача тривиальная, главное - оперделить признаки, остальное 50-70 строк кода
#32
by mikecool
т.е. ты бежишь по всему файлу, пытаясь определить группы? и формируешь дерево групп?
#33
by Eugeneer
никто не мешает тебе сделать ТЗ и показывать результат работы алгоритма перед тем как что то создавать в базе. Через интерактивную таблицу моджно проверить правильность работы и на логическом уровне все отладить как часики.
#35
by Anderson
А если какой-то идиот менеджер поставщика написал название группы или товара с пробелом в начале, то она получится в другом уровне. А если у меня на 40-м уровне есть 15 групп, то сколько мне надо переменных? Надо что-то более универсольное.
#40
by Eugeneer
любой алгоритм может слететь если появится новыйчудо прайс. Там еще бывает что группы вообще влепливают в колонку с артикулом или даже номером строки. так вообще офигеешь такое считывать.
#41
by Anderson
Я не про универсальной загрузки всех прайсов, а про универсального алгоритма в плане обработки групп данного прайса.
#42
by Eugeneer
я ж и говорю. под один прайс настроишь, прийдет другой прайс и уже надо новый алгоритм и т.д. и т.п.
#45
by Eugeneer
все это не так просто. Если у тебя один прайс строгой формы то конечно тут смело можно делать один алгоритм не парясь. По пробелам - тебе самый подходящий вариант и самый простой. Проверку группы и товара легко определить по какой нить колонке типа единицы измерения или количества. В прайсах у группы эти колонки пустые.
#50
by mishmeister
Интересно стало, можно я присоединюсь? А можно ведь сделать более универсально, без переменных. Загружать прайс в дерево значений. Т.е. получится как у Eugeneer, но сначала создаем группы, как дошли до товаров(Судя по колонке количество) пишем товары,при этом проверяя количество пробелов слева, как встретили группу, по тем же пробелам находим родителя в этой группе, и т.п. В итоге получаем дерево, которое уже грузим в справочник после необходимых телодвижений.
#53
by izekia
парни, ну накуй вам эти деревья или переменные, тут же линейная структура, все тупо сразу в справочник пишется и вообще присоединюсь к тут тонкости реализации - последнее дело
#54
by mishmeister
ИМХО, если что грузить от поставщика, то перед записью в БД нужно пользователю дать шанс проверить. А тут можно добавить колонки с найденными значениями в базе, дать возможность самостоятельно ввести корректировки, и т.п. Размечтался что-то я, сам все равно по другому и проще делал:) Но и задачи другие были.
#57
by Anderson
Самая основная проблема сохранить иерархию. Допустим грузим группы 5-го уровня и тут группа 4-го уровня следовательно родителя надо искать 3-го уровня а их штук 5 и кто из них папочка?
#62
by mishmeister
запоминай группы отдельно, и как найдешь следующую группу, то ищи предыдущую по количеству пробелов слева.
#65
by Eugeneer
делаешь ТЗ для заполнения Две колонки Считываем файл Пока Стр для Каждого ляляля Следующий Если Ляляля проблелов = 1 Тогда КонецЦИкла. Для Каждого Стр из ТЗ ЦИкл ляляля найтигруппа Не нашли создали ВерхняяГруппа = СОзданнаяИлиНайденнаяГруппа и т.д. и т.п.
#68
by izekia
зачем нужна твоя промежуточная структура ? берешь все и пишешь в справочник в транзакции сразу, не надо ничего дополнительного
#69
by Eugeneer
я не привык делать алгоритмы без проверки предварительной. Хочешь делай сразу! что проще проверить и кнопку нажать или насоздавать а потом мосх ипать и чистить все если где то глюк прошел или неправильно.
#70
by Eugeneer
вот так понажимают кнопок без контроля а потом сидят и дрочатся чтобы найти то что сделало. почистить и заного начинать.
#71
by Anderson
Все проверки пробелов легко заменить Лист.Rows(Стр).OutlineLevel и получаешь готовую таблицу с уровнями.
#72
by Eugeneer
к тому же считывание экселя - тормознутая штука. а если ты еще пригрузишь его созданием. то будешь каждый раз процедуру выполнять в случае ошибок по 10 кругу! ну и зачем такое мосх..во? Лучше считать, а потом записать (в одной транзакции пройдет моментально)
#73
by Eugeneer
Я видел кучу обработок где делают номенклатуру при считывании ячеек. я за такое бы уволил бы сразу....)))
#74
by Eugeneer
это если они есть и если есть эксель, на который не каждый хочут 7 тыщ на юзера покупать, которые в нем никуя не делает.
#75
by izekia
дада, таблицу делать потом из нее создавать справочник - это намного быстрее и эффективнее ... извини, я как-то не подумал а по поводу уволил - очевидно, отсюда и имеем обработки, которые только с тремя уровнями вложенности работают
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- При приеме данных с удаленной машины загрузка идет очень долго
- Загрузка данных из ЗиК в 1С Предприятие
- V 7.7. торговля и склад. Загрузка номенклатуры и цен.
- Долгая загрузка при "Загрузка структуры данных программы..."
- Загрузка структуры данных программы / загрузка прикладной системы
- Загрузка номенклатуры
- Загрузка справочника номенклатуры с штрих-кодами из файла Excel
- УПП: Загрузка характеристик номенклатуры и их свойств
- Загрузка иерархического прайса из Excel в 1с
- Загрузка номенклатуры в УТ 10.3 из Excel
- Загрузка кодов номенклатуры из Excel в ТЗ формы
- загрузка номенклатуры из екселя
В этой группе 1С
- Скрипт под windows на vbs и т.д. для запуска РИБ
- Типовая загрузка-выгрузка сообщения РИБ
- Как сделать, чтобы окно 1С предприятия открывалось на втором мониторе
- 8.2 БГУ СКД Пользовательский отбор
- v8: 1с-логистика: управление перевозками + упп
- Установить привязки программно
- Как посмотреть регламентных заданий пользователя,
- Учет основных средств на забалансовом счете
- v7: Испортили нумерацию документов.. как исправить?
- Снимаются с проведения документы при обмене УТ-РТ
- Раскраска табличного поля по строкам
- УТ11: Создание печатной формы приходной накладной с розн.ценами
- Как программно вызвать команду справочника?
- Отражение операций по продаже валюты в 1С БП 8.2.?
- Отчет СКД. Установка фиксированных непредопределенных параметров.
- При экспорте отчетов в Excel изменяется цвет шапки
- И снова ADODB. Не подключается к MySQL из 2003 сервера
- Как удалить строку из списка значений.
- Microsoft .NET Framework 3.5 проблема при обновлении.
- Постоянные разницы в требованиях накладных в РАУЗе