#0
by MathaiShung
На этапе Спр.УстановитьАтрибут("Родитель",Родитель) возникает эта ошибка, хотя несколькими строками ранее, когда устанавливал Родителя создаваемой группе никакой ошибки не выдавалось - всё установилось нормально.
#2
by MathaiShung
Я специально перед определением устанавливаю, потому что если после поставить - тогда Спр начинает выдавать только Родителя вместо всех элементов. Проверил - поставил Сообщить(Родитель) перед его определением - выдаёт всё верно.
#4
by MathaiShung
Пробовал - тогда если Родителя получать перед определением - выдаются все элементы, если после - нормально, только родитель, но тогда я не смогу обратиться к элементу чтобы его атрибут установить, т.к. Спр после определения Родителя возвращает тоже Родителя вместо элемента.
#6
by MathaiShung
Я в ТЗ идентификаторов не устанавливал - она у меня выгружается из ecxel, так что по номеру обращаюсь
#7
by MathaiShung
Проблему с обращением к элементу решил с помощью ещё одного позиционирования. Теперь и Родитель устанавливается после его определения, и ТекущийЭлемент убрал, но ошибка осталась! По-прежнему - Неверный тип справочника! Причём для новых групп установить Родителя аналогичным образом удалось без всяких ошибок. Кто-нибудь знает почему так происходит и как с этим бороться?
#10
by Злопчинский
Пристально не смотрел Но мне кардинально не нравится Что внутри условия если родитель присваивается но только пр выполнении условия а ниже по тексту кода используется родитель - какое значение если условие не сработало? И писать правильно Родитель = спр.текущийэлемент;
#11
by MathaiShung
У меня с ТекущимЭлементом и было изначально , это уже тут насоветовали - поменял. Если условие не сработает, значит нечего менять - по задумке должны переименовываться и переструктурироваться элементы справочника, коды которых соответствуют кодам из ТЗ.
#13
by Злопчинский
не путай бодий дар и палец как говорится У тебя родитель для текущей строки тз определяется каждый раз или может оставаться от предыдущей строки тз ?
#14
by Scandsv
а родитель - точно папка???? А то может ты элемент справочника в родители суешь? а туда только группу можно лепить
#20
by Злопчинский
Если у тебя ВСЕГДА условие =1 ТО ЗАЧЕМ ПРОВЕРЯТЬ ЭТО УСЛОВИЕ? Если не всегда условие=1 - то где ветка иначе?
#21
by Scandsv
Все, что точно определено должно быть 100% проверено. Перед тем как установить родителем - проверку делай на то, что элемент который будет родителем группа.
#22
by Злопчинский
Если нет ветки Иначе То внизу используемая переменная родитель - какое значение ДОЛЖНА ИМЕТЬ?
#23
by Scandsv
И если не группа пусть тебе сообщение выдаст - все увидишь. 99.99% что лепишь родителем элемент справочника. Чупа чупс ставлю.
#26
by MathaiShung
Да, условие будет всегда 1. Я таким образом позиционируюсь на нужном элементе и получаю Родителя. Или можно ещё как-то?
#28
by MathaiShung
И что здесь странного? Сначала проверяется код элемента, потом код Родителя этого элемента.
#31
by Scandsv
ты ищешь в справочнике элемент по коду. допустим ты его нашел. ТЫ уверен, что нашел группу? когда она была создана. Может элемент с этим кодом и не группа вовсе. Ты это не проверяешь.. а ведь кто не дает добавить Вот три секунды а сколько пользы
#36
by Scandsv
Он предполагает, что в ТЗ в одной колонке коды элементов, а в другой коды их родителей
#37
by MathaiShung
Я же говорю, это не ради проверки, а для получения значения Родителя. А нет, не всегда - если группа первого уровня, кода в колонке Подчинение не будет, этот момент пропустил.
#38
by Garykom
там "Родитель" легко может быть пустое в случае когда 1-е условие выполнилось а второе нет а дальше мы этого пустого пытаемся Гр.УстановитьАтрибут("Родитель",Родитель);
#40
by Злопчинский
Код ваще мутный И в целом и в частностях Следует 1. Найти группу по Подчинение 2. Создать группу если не найдена 3. Запомнить ссылку группы 4. Найти элемент (если не найден элемент то создать при необходимости) 5. В элемент присвоить родителя из п.3 ВСЕ
#42
by Злопчинский
я на это уже обратил внимание выше и при том коде что написан родитель может вообще из пред. Строки унаследоватьс
#45
by Злопчинский
короче склифасовский Врубай скайп и тимвьювер Будем писать под диктовку Скайп zlopun
#54
by MathaiShung
Да ладно, сам уже додумаю, спасибо. Тут много чего посоветовали - буду исправлять...
#57
by MathaiShung
Нет, не так. Дело в том, что я неправильно ответил на (невнимательно прочитал) - у меня логика на самом деле другая. 1. Проверить по коду элементов в ТЗ существуют ли они в Справочнике. Если НЕТ: 2.Создать новые группы (т.к. новых товаров я в ТЗ не добавлял) и присвоить им Код и Наименование из ТЗ. 3. Найти в Справочнике группы по коду в колонке Подчинение из ТЗ, определить их как Родитель(находить Родителя нужно только после создания новых Групп (т.к. они тоже будут являться Родителем для др. элементов) - потому он у меня и определяется внутри условия). Если ДА: 4. Найти в Справочнике элементы по коду в колонке Код из ТЗ и присвоить новые Наименование и Родителя.
#58
by Злопчинский
Описанная логика кривая, ибо 1. Проверить по коду элементов в ТЗ существуют ли они в Справочнике. Если ДА: 4. Найти в Справочнике элементы по коду в колонке Код из ТЗ и присвоить новые Наименование и Родителя. из п.1 "Проверить по коду элементов в ТЗ существуют ли они в Справочнике." и из п.4 "Найти в Справочнике элементы по коду в колонке Код из ТЗ" - это одно и то же, т.к. проверить без поиска нельзя. вдобавок в п.4 в случае ЕСЛИ ДА - "новые наименование и родитель - ОНИ ОТКУДА? они - неопределены... У вас проблемы с алгоритмикой...
#59
by MathaiShung
С алгоритмикой как раз всё хорошо, скорее проблемы с правильным пониманием работы методов - когда что на чём позиционируется, поэтому начал мудрить с этим поиском. Сейчас переделал - всё работает как надо:
#61
by Злопчинский
Попробуй нижележащий код. Он, по идее, должен давать точно тот же результат что и твой (это и есть твой код, причесанный): если все норм будет - тогда втыкай в код.. ;-) успкхов!
#62
by MathaiShung
Да, вроде всё также, хотя пока не совсем понятно почему. Спасибо, буду разбираться...
#64
by Злопчинский
потому что тривиальная программистская логика код никак НЕ СВЯЗАН с предыдущим куском кода. Сдвигаем этот код вверх, сразу после чтения данных из строки ТЗ получается далее (кусок кода который РАЗДЕЛЯЛ этот код ушел наверх) осталось:
#65
by Злопчинский
эти два блока если отрабатывают одно и то же, объединяем Если Спр.НайтиПоКоду(Код,0)=0 Тогда
#68
by Злопчинский
далее думаю понятно... заметь - тупой рефакторинг кода, даже без вникания в логику. по простым формальным признакам.
#69
by MathaiShung
Да, да, всё правильно, я уже повтыкал в код и сам понял, то о чём Вы выше написали.
#70
by Злопчинский
Вот видишь - надо всего лишь подумать... а не тыкать клаву в диком митусении ;-) Успехов!
#71
by MathaiShung
Спасибо. Только в не хватает Спр.Родитель=Родитель внутри Если Спр.НайтиПоКоду(Код,0) = 0 - это меня и смутило сразу, а потом уже и про рефакторинг заметил. Если не устанавливать родителя при создании новых групп, потом они не присвоятся. Ведь Иначе отрабатывает в этом же цикле ещё не созданные элементы.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: Как программно выбрать тип справочника в 1С:8.0
- Что значит ошибка: Неверный тип вышестоящего справочника!
- v7: Общая файловая ошибка при доступе к файлу. Ошибка загрузки метаданных.
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Ошибка - {Глобальный модуль(11217)}: Неверный идентификатор колонки!
- v7: Ошибка SQL 08S01 Ошибка связи
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
В этой группе 1С
- v8: Ввод только одного документа в месяц
- Администрирование хранилища: как удалить пользователя полностью?
- Очистить регистр накопления
- Невозможно применить фиксированные настройки. Пересекаются элементы отбора.
- Как изменить код Номенклатуры в БП 3.0
- 6-НДФЛ ЗиУП (УПП) 8.2 "исчисленный как удержанный"
- Перенос данных ИЗ БП Проф в БП Корп
- Получение реквизита с типом "ХранилищеЗначения" в СКД
- факсимиле бп 2.0 как ?
- Отображение веса и количества в подборе номенклатуры.
- Индекс полнотекстового поиска УТ
- Значение заполнения 1С 8.3
- Сервер проф работает как корп?
- Только суммовой учет запасов (без количества) в БП 3.0
- 1С 7.7. Переместиться на последнюю строку ТаблицыЗначений
- КД2. Предопределенное значение в приемнике.
- Групповое закрытие месяца в Бух 3.0
- расход при усн Реализация не делает движений КА 1.1
- УНФ 1.3 Почему разрешает перемещение несуществующего запаса
- Где хранится физически табличный документ