|   |   | 
| 
 | v7: Ошибка: Неверный тип справочника! | ☑ | ||
|---|---|---|---|---|
| 0
    
        MathaiShung 22.03.16✎ 19:39 | 
        Процедура МодификацияСправочника()
 Спр=СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); ТЗ.ВыбратьСтроки(); НомСтр=0; Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр=НомСтр+1; Подчинение=ТЗ.ПолучитьЗначение(НомСтр,1); Код=ТЗ.ПолучитьЗначение(НомСтр,2); Наименование=ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Код,0)=0 Тогда Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр; КонецЕсли; Гр=СоздатьОбъект("Справочник.Номенклатура"); Гр.НоваяГруппа(); Гр.УстановитьАтрибут("Код",Код); Гр.УстановитьАтрибут("Наименование",Наименование); Гр.УстановитьАтрибут("Родитель",Родитель); Гр.Записать(); Иначе Спр.УстановитьАтрибут("Наименование",Наименование); Спр.УстановитьАтрибут("Родитель",Родитель); Спр.Записать(); Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр.ТекущийЭлемент(); КонецЕсли; КонецЕсли КонецЦикла; КонецПроцедуры На этапе Спр.УстановитьАтрибут("Родитель",Родитель) возникает эта ошибка, хотя несколькими строками ранее, когда устанавливал Родителя создаваемой группе никакой ошибки не выдавалось - всё установилось нормально. | |||
| 1
    
        hhhh 22.03.16✎ 19:47 | 
        потому что не определен вообще этот Родитель.
 Иначе Спр.УстановитьАтрибут("Наименование",Наименование); Спр.УстановитьАтрибут("Родитель",Родитель); где определяешь? В каком месте? | |||
| 2
    
        MathaiShung 22.03.16✎ 19:55 | 
        (1) Я специально перед определением устанавливаю, потому что если после поставить - тогда Спр начинает выдавать только Родителя вместо всех элементов. Проверил - поставил Сообщить(Родитель) перед его определением - выдаёт всё верно.     | |||
| 3
    
        ДенисЧ 22.03.16✎ 19:59 | 
        Попробуй .ТекущийЭлемент()...     | |||
| 4
    
        MathaiShung 22.03.16✎ 20:12 | 
        (3) Пробовал - тогда если Родителя получать перед определением - выдаются все элементы, если после - нормально, только родитель, но тогда я не смогу обратиться к элементу чтобы его атрибут установить, т.к. Спр после определения Родителя возвращает тоже Родителя вместо элемента.     | |||
| 5
    
        Chameleon1980 22.03.16✎ 20:19 | 
        а тут зачем
 Подчинение=ТЗ.ПолучитьЗначение(НомСтр,1); Код=ТЗ.ПолучитьЗначение(НомСтр,2); Наименование=ТЗ.ПолучитьЗначение(НомСтр,3); мы и так по тз бежим Подчинение=ТЗ.Подчинение; Код=ТЗ.Код; Наименование=ТЗ.Наименование; или конкретно по номеру колонки нужно? | |||
| 6
    
        MathaiShung 22.03.16✎ 20:24 | 
        (5) Я в ТЗ идентификаторов не устанавливал - она у меня выгружается из ecxel, так что по номеру обращаюсь     | |||
| 7
    
        MathaiShung 22.03.16✎ 21:31 | 
        Проблему с обращением к элементу решил с помощью ещё одного позиционирования. Теперь и Родитель устанавливается после его определения, и ТекущийЭлемент убрал, но ошибка осталась!
 Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр=НомСтр+1; Подчинение=ТЗ.ПолучитьЗначение(НомСтр,1); Код=ТЗ.ПолучитьЗначение(НомСтр,2); Наименование=ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Код,0)=0 Тогда Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр; КонецЕсли; Гр=СоздатьОбъект("Справочник.Номенклатура"); Гр.НоваяГруппа(); Гр.УстановитьАтрибут("Код",Код); Гр.УстановитьАтрибут("Наименование",Наименование); Гр.УстановитьАтрибут("Родитель",Родитель); Гр.Записать(); Иначе //Спр.УстановитьАтрибут("Наименование",Наименование); //Спр.Записать(); Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр; КонецЕсли; Тов=СоздатьОбъект("Справочник.Номенклатура"); Если Тов.НайтиПоКоду(Код,0)=1 Тогда Товар=Тов; КонецЕсли; Товар.УстановитьАтрибут("Родитель",Родитель); Товар.Записать(); КонецЕсли КонецЦикла; По-прежнему - Неверный тип справочника! Причём для новых групп установить Родителя аналогичным образом удалось без всяких ошибок. Кто-нибудь знает почему так происходит и как с этим бороться? | |||
| 8
    
        Scandsv 22.03.16✎ 21:38 | 
        Зачем .УстановитьАтрибут()????
 Тут просто спр.Родитель = Родитель; спр.Записать(); и все.... | |||
| 9
    
        MathaiShung 22.03.16✎ 21:39 | 
        (8) Так тоже делал - результат не меняется: Неверный тип справочника!     | |||
| 10
    
        Злопчинский 22.03.16✎ 21:43 | 
        Пристально не смотрел
 Но мне кардинально не нравится Что внутри условия если родитель присваивается но только пр выполнении условия а ниже по тексту кода используется родитель - какое значение если условие не сработало? И писать правильно Родитель = спр.текущийэлемент(); | |||
| 11
    
        MathaiShung 22.03.16✎ 21:49 | 
        (10) У меня с ТекущимЭлементом и было изначально (0), это уже тут насоветовали - поменял.
 Если условие не сработает, значит нечего менять - по задумке должны переименовываться и переструктурироваться элементы справочника, коды которых соответствуют кодам из ТЗ. | |||
| 12
    
        Злопчинский 22.03.16✎ 21:50 | 
        Пока ...... Цикл
 Родитель = ПолучитьПустоеЗначение("Справочник.Номенклатура"); Далее по тексту Сделать для начала | |||
| 13
    
        Злопчинский 22.03.16✎ 21:51 | 
        (11)  не путай бодий дар и палец как говорится
 У тебя родитель для текущей строки тз определяется каждый раз или может оставаться от предыдущей строки тз ? | |||
| 14
    
        Scandsv 22.03.16✎ 21:53 | 
        (9) а родитель - точно папка????
 А то может ты элемент справочника в родители суешь? а туда только группу можно лепить | |||
| 15
    
        Злопчинский 22.03.16✎ 21:53 | 
        Для начала сделай (12)
 И сюда доклад | |||
| 16
    
        Злопчинский 22.03.16✎ 21:53 | 
        (14)  угу, запросто
 Проверки то нет что жто группа | |||
| 17
    
        MathaiShung 22.03.16✎ 21:54 | 
        (13) Каждый раз определяется по коду из столбца Подчинение     | |||
| 18
    
        MathaiShung 22.03.16✎ 21:56 | 
        (14) Точно, это в ТЗ уже чётко установлено     | |||
| 19
    
        Злопчинский 22.03.16✎ 21:56 | 
        (17)  тогда твой код однозначно кривой по логике построения     | |||
| 20
    
        Злопчинский 22.03.16✎ 21:59 | 
        Если у тебя ВСЕГДА условие =1
 Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр; ТО ЗАЧЕМ ПРОВЕРЯТЬ ЭТО УСЛОВИЕ? Если не всегда условие=1 - то где ветка иначе? | |||
| 21
    
        Scandsv 22.03.16✎ 22:00 | 
        (18) Все, что точно определено должно быть 100% проверено.
 Перед тем как установить родителем - проверку делай на то, что элемент который будет родителем группа. | |||
| 22
    
        Злопчинский 22.03.16✎ 22:00 | 
        Если нет ветки Иначе
 То внизу используемая переменная родитель - какое значение ДОЛЖНА ИМЕТЬ? | |||
| 23
    
        Scandsv 22.03.16✎ 22:01 | 
        И если не группа пусть тебе сообщение выдаст - все увидишь. 99.99% что лепишь родителем элемент справочника. Чупа чупс ставлю.     | |||
| 24
    
        Garykom гуру 22.03.16✎ 22:02 | 
        Никому не кажется этот код немного странным?
 
 | |||
| 25
    
        Злопчинский 22.03.16✎ 22:02 | 
        (23)  присоединяюсь к рекомендации     | |||
| 26
    
        MathaiShung 22.03.16✎ 22:02 | 
        (20) Да, условие будет всегда 1. Я таким образом позиционируюсь на нужном элементе и получаю Родителя. Или можно ещё как-то?     | |||
| 27
    
        Злопчинский 22.03.16✎ 22:04 | 
        Если условие ВСЕГДА =1
 То нахрена это проверять? И почему ты уверен что всегда? | |||
| 28
    
        MathaiShung 22.03.16✎ 22:05 | 
        (24) И что здесь странного? Сначала проверяется код элемента, потом код Родителя этого элемента.     | |||
| 29
    
        Злопчинский 22.03.16✎ 22:05 | 
        (24)  да хз     | |||
| 30
    
        Злопчинский 22.03.16✎ 22:06 | 
        (28)  херню городите
 В части "этого элемента" | |||
| 31
    
        Scandsv 22.03.16✎ 22:07 | 
        (26) ты ищешь в справочнике элемент по коду.
 допустим ты его нашел. ТЫ уверен, что нашел группу? когда она была создана. Может элемент с этим кодом и не группа вовсе. Ты это не проверяешь.. а ведь кто не дает добавить Если Родител.ЭтоГруппа() Тогда спр.родитель = родитель; спр.Записать(); Иначе Сообщить(Родитель.Код+"Нифига не группа"); КонецЕсли; Вот три секунды а сколько пользы | |||
| 32
    
        Злопчинский 22.03.16✎ 22:07 | 
        Логика какаято типа
 Если не нашли элемент по коду То ищем группу по коду группы | |||
| 33
    
        Scandsv 22.03.16✎ 22:09 | 
        (24) не странно     | |||
| 34
    
        Garykom гуру 22.03.16✎ 22:09 | ||||
| 35
    
        Scandsv 22.03.16✎ 22:09 | 
        Коряво, но не странно     | |||
| 36
    
        Scandsv 22.03.16✎ 22:11 | 
        Он предполагает, что в ТЗ в одной колонке коды элементов, а в другой коды их родителей     | |||
| 37
    
        MathaiShung 22.03.16✎ 22:11 | 
        (27) Я же говорю, это не ради проверки, а для получения значения Родителя. А нет, не всегда - если группа первого уровня, кода в колонке Подчинение не будет, этот момент пропустил.     | |||
| 38
    
        Garykom гуру 22.03.16✎ 22:12 | 
        (33) там "Родитель" легко может быть пустое в случае когда 1-е условие выполнилось а второе нет
 а дальше мы этого пустого пытаемся Гр.УстановитьАтрибут("Родитель",Родитель); | |||
| 39
    
        Scandsv 22.03.16✎ 22:12 | 
        (с) Никогда не говори ВСЕГДА     | |||
| 40
    
        Злопчинский 22.03.16✎ 22:12 | 
        Код ваще мутный
 И в целом и в частностях Следует 1. Найти группу по Подчинение 2. Создать группу если не найдена 3. Запомнить ссылку группы 4. Найти элемент (если не найден элемент то создать при необходимости) 5. В элемент присвоить родителя из п.3 ВСЕ | |||
| 41
    
        Scandsv 22.03.16✎ 22:13 | 
        (33) А вот как раз пустое, насколько я помню и прокатит     | |||
| 42
    
        Злопчинский 22.03.16✎ 22:13 | 
        (38)  я на это уже обратил внимание выше и при том коде что написан родитель может вообще из пред. Строки унаследоватьс     | |||
| 43
    
        Scandsv 22.03.16✎ 22:13 | 
        (40) Соглашусь - мутный     | |||
| 44
    
        MathaiShung 22.03.16✎ 22:14 | 
        (36) Я это знаю, я сам загружаемую в ТЗ таблицу делал     | |||
| 45
    
        Злопчинский 22.03.16✎ 22:15 | 
        (44)  короче склифасовский
 Врубай скайп и тимвьювер Будем писать под диктовку Скайп zlopun | |||
| 46
    
        Garykom гуру 22.03.16✎ 22:15 | 
        (41) да ну?
 
где ТипаПустаяПеремнная нигде выше не присваивается | |||
| 47
    
        Злопчинский 22.03.16✎ 22:16 | 
        Я сегодня добрвй
 Приехал с Родины | |||
| 48
    
        MathaiShung 22.03.16✎ 22:18 | 
        (40) Правильно, именно такую логику я хочу реализовать.     | |||
| 49
    
        Scandsv 22.03.16✎ 22:18 | 
        (46) не присвоенная переменная и пустая ссылка - это чуть разные понятия, или я не прав?     | |||
| 50
    
        Злопчинский 22.03.16✎ 22:18 | 
        (48) а написал хрень полную     | |||
| 51
    
        Scandsv 22.03.16✎ 22:18 | 
        (47) А где Родина?     | |||
| 52
    
        Garykom гуру 22.03.16✎ 22:19 | 
        (49) Так у него выше Родитель скорее всего не элемент нужного справочника     | |||
| 53
    
        Злопчинский 22.03.16✎ 22:20 | 
        (51) Брест     | |||
| 54
    
        MathaiShung 22.03.16✎ 22:22 | 
        (45) Да ладно, сам уже додумаю, спасибо. Тут много чего посоветовали - буду исправлять...     | |||
| 55
    
        Scandsv 22.03.16✎ 22:23 | 
        (54) Удачи.
 (53) Хорошего настроения на долго | |||
| 56
    
        Злопчинский 22.03.16✎ 22:28 | 
        Спр = СоздатьОбъект("Справочник.Номенклатура");
 // Пока ТЗ.ПолучитьСтроку()=1 Цикл Подчинение = ТЗ.ПолучитьЗначение(НомСтр,1); Код = ТЗ.ПолучитьЗначение(НомСтр,2); Наименование = ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Подчинение,0)=0 Тогда Спр.НоваяГруппа(); Спр.Код = Код; Спр.Наименование = Наименование; //Спр.Родитель = ... //непонятно в какую группу пихать текущую группу Спр.Записать(); Иначе Если Спр.ЭтоГруппа()=0 Тогда Сообщить("ПРОПУЩЕНО: ошибка поиска группы "+Подчинение); Продолжить; КонецЕсли; КонецЕсли; Родитель = Спр.ТекущийЭлемент(); Если Спр.НайтиПоКоду(Код,0)=0 Тогда Сообщить("ПРОПУЩЕНО: не найден элемент по коду: "+Код); Продолжить; КонецЕсли; Спр.Родитель = Родитель; Спр.Записать(); КонецЦикла; | |||
| 57
    
        MathaiShung 23.03.16✎ 19:51 | 
        (10) (56) Нет, не так. Дело в том, что я неправильно ответил на (40) (невнимательно прочитал) - у меня логика на самом деле другая.
 1. Проверить по коду элементов в ТЗ существуют ли они в Справочнике. Если НЕТ: 2.Создать новые группы (т.к. новых товаров я в ТЗ не добавлял) и присвоить им Код и Наименование из ТЗ. 3. Найти в Справочнике группы по коду в колонке Подчинение из ТЗ, определить их как Родитель(находить Родителя нужно только после создания новых Групп (т.к. они тоже будут являться Родителем для др. элементов) - потому он у меня и определяется внутри условия). Если ДА: 4. Найти в Справочнике элементы по коду в колонке Код из ТЗ и присвоить новые Наименование и Родителя. | |||
| 58
    
        Злопчинский 23.03.16✎ 21:00 | 
        (57) Описанная логика кривая, ибо
 1. Проверить по коду элементов в ТЗ существуют ли они в Справочнике. Если ДА: 4. Найти в Справочнике элементы по коду в колонке Код из ТЗ и присвоить новые Наименование и Родителя. из п.1 "Проверить по коду элементов в ТЗ существуют ли они в Справочнике." и из п.4 "Найти в Справочнике элементы по коду в колонке Код из ТЗ" - это одно и то же, т.к. проверить без поиска нельзя. вдобавок в п.4 в случае ЕСЛИ ДА - "новые наименование и родитель - ОНИ ОТКУДА? они - неопределены... У вас проблемы с алгоритмикой... | |||
| 59
    
        MathaiShung 23.03.16✎ 21:43 | 
        (58) С алгоритмикой как раз всё хорошо, скорее проблемы с правильным пониманием работы методов - когда что на чём позиционируется, поэтому начал мудрить с этим поиском.
 Сейчас переделал - всё работает как надо: Процедура МодификацияСправочника() Спр=СоздатьОбъект("Справочник.Номенклатура"); Спр.ВыбратьЭлементы(); ТЗ.ВыбратьСтроки(); НомСтр=0; Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр=НомСтр+1; Подчинение=ТЗ.ПолучитьЗначение(НомСтр,1); Код=ТЗ.ПолучитьЗначение(НомСтр,2); Наименование=ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Код,0)=0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); Иначе Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); КонецЕсли; Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель=Спр.ТекущийЭлемент(); Иначе Родитель=ПолучитьПустоеЗначение("Справочник.Номенклатура") КонецЕсли; Если Спр.НайтиПоКоду(Код,0)=1 Тогда Спр.Родитель=Родитель; Спр.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры | |||
| 60
    
        MathaiShung 23.03.16✎ 21:46 | 
        + (59) Ну и ошибка была в пустом значении поля Подчинение у групп 1-го уровня в ТЗ     | |||
| 61
    
        Злопчинский 23.03.16✎ 22:26 | 
        (60) Попробуй нижележащий код. Он, по идее, должен давать точно тот же результат что и твой (это и есть твой код, причесанный):
 Спр = СоздатьОбъект("Справочник.Номенклатура"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр = ТЗ.НомерСтроки; Подчинение = ТЗ.ПолучитьЗначение(НомСтр,1); Код = ТЗ.ПолучитьЗначение(НомСтр,2); Наименование = ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель = Спр.ТекущийЭлемент(); Иначе Родитель = ПолучитьПустоеЗначение("Справочник.Номенклатура") КонецЕсли; Если Спр.НайтиПоКоду(Код,0) = 0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Иначе Спр.Родитель=Родитель; КонецЕсли; Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); КонецЦикла; если все норм будет - тогда втыкай в код.. ;-) успкхов! | |||
| 62
    
        MathaiShung 23.03.16✎ 22:43 | 
        (61) Да, вроде всё также, хотя пока не совсем понятно почему. Спасибо, буду разбираться...     | |||
| 63
    
        2S 23.03.16✎ 22:48 | 
        все не читал, лень
 сходу - группа? | |||
| 64
    
        Злопчинский 23.03.16✎ 22:51 | 
        (62) потому что тривиальная программистская логика
 код Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель = Спр.ТекущийЭлемент(); Иначе Родитель = ПолучитьПустоеЗначение("Справочник.Номенклатура") КонецЕсли; никак НЕ СВЯЗАН с предыдущим куском кода. Сдвигаем этот код вверх, сразу после чтения данных из строки ТЗ получается далее (кусок кода который РАЗДЕЛЯЛ этот код ушел наверх) осталось: Если Спр.НайтиПоКоду(Код,0)=0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); Иначе Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); КонецЕсли; Если Спр.НайтиПоКоду(Код,0)=1 Тогда Спр.Родитель=Родитель; Спр.Записать(); КонецЕсли; | |||
| 65
    
        Злопчинский 23.03.16✎ 22:52 | 
        эти два блока если отрабатывают одно и то же, объединяем
 Если Спр.НайтиПоКоду(Код,0)=0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); Иначе Спр.Родитель=Родитель; Спр.Записать(); Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); КонецЕсли; | |||
| 66
    
        Злопчинский 23.03.16✎ 22:53 | 
        Упрощаем
 Если Спр.НайтиПоКоду(Код,0)=0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); Иначе Спр.Родитель=Родитель; Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); КонецЕсли; | |||
| 67
    
        Злопчинский 23.03.16✎ 22:54 | 
        общий код выносим за пределы если
 Если Спр.НайтиПоКоду(Код,0)=0 Тогда Спр.НоваяГруппа(); Спр.УстановитьАтрибут("Код",Код); Иначе Спр.Родитель=Родитель; КонецЕсли; Спр.УстановитьАтрибут("Наименование",Наименование); Спр.Записать(); | |||
| 68
    
        Злопчинский 23.03.16✎ 22:55 | 
        далее думаю понятно...
 заметь - тупой рефакторинг кода, даже без вникания в логику. по простым формальным признакам. | |||
| 69
    
        MathaiShung 23.03.16✎ 23:06 | 
        (68) Да, да, всё правильно, я уже повтыкал в код и сам понял, то о чём Вы выше написали.     | |||
| 70
    
        Злопчинский 24.03.16✎ 00:27 | 
        (69) Вот видишь - надо всего лишь подумать... а не тыкать клаву в диком митусении ;-)
 Успехов! | |||
| 71
    
        MathaiShung 25.03.16✎ 20:08 | 
        Спасибо. Только в (61) не хватает Спр.Родитель=Родитель внутри Если Спр.НайтиПоКоду(Код,0) = 0 - это меня и смутило сразу, а потом уже и про рефакторинг заметил. Если не устанавливать родителя при создании новых групп, потом они не присвоятся. Ведь Иначе отрабатывает в этом же цикле ещё не созданные элементы.     | |||
| 72
    
        Злопчинский 26.03.16✎ 00:02 | 
        (71) согласен, правильное замечание, тогда судя по всему - еще проще.. ;-)
 Спр = СоздатьОбъект("Справочник.Номенклатура"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл НомСтр = ТЗ.НомерСтроки; Подчинение = ТЗ.ПолучитьЗначение(НомСтр,1); Код = ТЗ.ПолучитьЗначение(НомСтр,2); Наименование = ТЗ.ПолучитьЗначение(НомСтр,3); Если Спр.НайтиПоКоду(Подчинение,0)=1 Тогда Родитель = Спр.ТекущийЭлемент(); Иначе Родитель = ПолучитьПустоеЗначение("Справочник.Номенклатура") КонецЕсли; Если Спр.НайтиПоКоду(Код,0) = 0 Тогда Спр.НоваяГруппа(); Спр.Код = Код; КонецЕсли; Спр.Родитель = Родитель; Спр.Наименование = Наименование; Спр.Записать(); КонецЦикла; | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |