|   |   | 
| 
 | Получить ссылки на все элементы определенного Родителя | ☑ | ||
|---|---|---|---|---|
| 0
    
        Marry04 08.06.16✎ 06:54 | 
        Как получить ссылки на все элементы Родителя под наименованием "КО Теп" справочника "Рабочие центры". В дальнейшем хочу поместить ссылки в регистр сведений. делаю так:
 Процедура ЗаполнитьНажатие(Элемент) Запрос = Новый Запрос ( " | ВЫБРАТЬ | РабочиеЦентры.Ссылка |ИЗ | Справочник.РабочиеЦентры КАК РабочиеЦентры |ГДЕ | РабочиеЦентры.Родитель = &Группа |" ); СсылкаНаГруппу= "КО Теп"; Запрос.УстановитьПараметр("Группа", СсылкаНаГруппу); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Сообщить(СсылкаНаГруппу.Ссылка + ":"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); КонецЦикла; КонецПроцедуры Ошибка: {Форма.Форма.Форма(24)}: Значение не является значением объектного типа (Ссылка) Сообщить(СсылкаНаГруппу.Ссылка + ":"); | |||
| 1
    
        birkoFFFF 08.06.16✎ 06:59 | 
        //СсылкаНаГруппу= "КО Теп";
 Что вы тут имели в виду? //СсылкаНаГруппу.Ссылка А тут вы что делаете ? Получить ссылки из строки пытаетесь? Однако... | |||
| 2
    
        Zmich 08.06.16✎ 07:04 | 
        (0). Используй НайтиПоНаименованию     | |||
| 3
    
        1dvd 08.06.16✎ 07:09 | 
        Сообщить("" + СсылкаНаГруппу.Ссылка + ":");     | |||
| 4
    
        1dvd 08.06.16✎ 07:09 | 
        |ГДЕ
 | РабочиеЦентры.Родитель В (&Группа) | |||
| 5
    
        1dvd 08.06.16✎ 07:10 | 
        |ГДЕ
 | РабочиеЦентры.ССылка = &Группа | |||
| 6
    
        1dvd 08.06.16✎ 07:10 | 
        блин... 
 |ГДЕ | РабочиеЦентры.ССылка В (&Группа) | |||
| 7
    
        Marry04 08.06.16✎ 09:05 | 
        (1) Я хочу получить ссылку на родителя с данным наименованием "КО Теп",а также на элементы родителя.     | |||
| 8
    
        1dvd 08.06.16✎ 09:06 | 
        (7) тогда В ИЕРАРХИИ     | |||
| 9
    
        Marry04 08.06.16✎ 09:06 | 
        (3) все равно ошибка такая же. не помогло ни Сообщить("" + СсылкаНаГруппу.Ссылка + ":"); ни |ГДЕ 
 | РабочиеЦентры.ССылка В (&Группа) | |||
| 10
    
        Fish гуру 08.06.16✎ 09:07 | 
        (3) У него СсылкаНаГруппу - это строка.     | |||
| 11
    
        1dvd 08.06.16✎ 09:07 | 
        (9) 
 //СсылкаНаГруппу= "КО Теп"; СсылкаНаГруппу= Справочники.РабочиеЦентры.НайтиПоНаименованию("КО Теп"); | |||
| 12
    
        Marry04 08.06.16✎ 09:25 | 
        (11) получилось спасибо!именно ссылки на наименования!
 теперь хочу загнать эти ссылки(наименования) в регистр сведений "Графики рабочих центров" в поле РабочийЦентр, дата и график работы из справочника "График работы".причем для всех РЦ он равен элемнту справочника=2 смена. Не совсем понимаю как вытащить именно это значение. Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; НоваяЗапись.ГрафикРаботы = Справочники.ГрафикиРаботы.??? КонецЦикла; | |||
| 13
    
        Marry04 08.06.16✎ 09:26 | 
        маленьким запросом может. и найти по наименованию метод тут не подойдет?     | |||
| 14
    
        Fish гуру 08.06.16✎ 09:28 | 
        (13) Тем же запросом и вытаскивай. В чём проблема?     | |||
| 15
    
        Marry04 08.06.16✎ 09:33 | 
        (14)  Запрос = Новый Запрос (
 " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.ССылка = "2 смены" |" ); ГрафикиРаботы.ССылка = "2 смены" ругается на данную конструкцию..пишет, что не хватает символа - ). не понимаю зачем он. | |||
| 16
    
        Marry04 08.06.16✎ 09:34 | 
        Ожидается символ ')'
 | ГрафикиРаботы.ССылка = "<<?>>2 смены" | |||
| 17
    
        Ёпрст гуру 08.06.16✎ 09:36 | 
        (15) он тебе мягко намекает, что сравнивать ссылку со строкой бессмысленно     | |||
| 18
    
        Marry04 08.06.16✎ 09:39 | 
        (17) исправила на  ГрафикиРаботы.Наименование = "2 смены"    
 тоже самое | |||
| 19
    
        Зая Бусечка 08.06.16✎ 09:41 | 
        (18) ссылку со строкой сравнивать бессмысленно
 ну или тупо Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" обрати внимание на кавычки | |||
| 20
    
        Fish гуру 08.06.16✎ 09:43 | 
        (18) "исправила" - Измени пол в личке.     | |||
| 21
    
        Marry04 08.06.16✎ 09:48 | 
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
 Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; НоваяЗапись.Записать(Истина); КонецЦикла; Вот таким образом сделала. но что-то данные в регистр не записываются | |||
| 22
    
        Ёпрст гуру 08.06.16✎ 09:55 | 
        (21) дык, перебирать надо ВыборкаДетальныеЗаписи1 , для начала.
 А так, всё в топку. | |||
| 23
    
        Зая Бусечка 08.06.16✎ 09:58 | 
        А где ВыборкаДетальныеЗаписи1.Следующий() ?     | |||
| 24
    
        Marry04 08.06.16✎ 09:59 | 
        (22)  Запрос = Новый Запрос (
 " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; КонецЦикла; НоваяЗапись.Записать(Истина); про это вы? | |||
| 25
    
        Marry04 08.06.16✎ 10:02 | 
        Бесполезно, все равно не хочет заполняться данными регистр. может не так как-то выборка графика все-таки идет или записывать как-то по-другому
 вот вроде как полноценный код пока такой. Процедура ЗаполнитьНажатие(Элемент) Запрос = Новый Запрос ( " | ВЫБРАТЬ | РабочиеЦентры.Ссылка |ИЗ | Справочник.РабочиеЦентры КАК РабочиеЦентры |ГДЕ | РабочиеЦентры.ССылка В ИЕРАРХИИ(&Группа) |" ); //СсылкаНаГруппу = Справочники.РабочиеЦентры.ПустаяСсылка(); СсылкаНаГруппу= Справочники.РабочиеЦентры.НайтиПоНаименованию("КО Теп"); Запрос.УстановитьПараметр("Группа", СсылкаНаГруппу); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); //Сообщить("" + СсылкаНаГруппу.Ссылка + ":"); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; КонецЦикла; НоваяЗапись.Записать(Истина); КонецЦикла; КонецПроцедуры | |||
| 26
    
        Ёпрст гуру 08.06.16✎ 10:02 | 
        (24) да, но весь код - в топку     | |||
| 27
    
        catena 08.06.16✎ 10:04 | 
        (25)Хотите, дам рецепт чудесного борща?     | |||
| 28
    
        Marry04 08.06.16✎ 10:07 | 
        (26) почему? что не так?     | |||
| 29
    
        Marry04 08.06.16✎ 10:08 | 
        (27) извините , что задаю тупые вопросы. я- начинающий только..     | |||
| 30
    
        Ёпрст гуру 08.06.16✎ 10:08 | 
        (28) ну, всё
 :) А так, занимайтесь, совершенствуйтесь | |||
| 31
    
        Marry04 08.06.16✎ 10:09 | 
        (30) все???может дадите свой какой-то алгоритм. буду очень благодарна вам     | |||
| 32
    
        Marry04 08.06.16✎ 10:13 | 
        все получилось!спасибо всем огромное!     | |||
| 33
    
        Feunoir 08.06.16✎ 10:14 | 
        Вы, самое главное, не спугните девушку. Она отличный кандидат на участие в конкурсе мисс бюст. Если он, когда-нибудь ещё будет проводиться.
 https://pp.vk.me/c604417/v604417607/1b2/NMohOB_Ay3g.jpg | |||
| 34
    
        Marry04 08.06.16✎ 10:28 | 
        (33) что вы делаете(((     | |||
| 35
    
        catena 08.06.16✎ 10:37 | 
        (29)Так начинающие книжки читают. Зачем превращать форум в интерактивный СП?     | |||
| 36
    
        Feunoir 08.06.16✎ 10:38 | 
        (34) Фоточки показываю :) Красивая фотка. Динамический диапазон поправить и отлично вообще будет.     | |||
| 37
    
        Зая Бусечка 08.06.16✎ 10:44 | 
        (34) Он завидует. Я тоже.     | |||
| 38
    
        Marry04 08.06.16✎ 10:54 | 
        Теперь аналогичную вещь делаю для справочника ГруппыЗаменяемостиРабочихЦентров. там уже нет иерархии. просто вывести в регистр сведений ссылки на данные РЦ и график работы такой же проставить. Но тут косяк, пишет, что 
 {Форма.Форма.Форма(41)}: Ошибка при вызове метода контекста (Записать) НоваяЗапись.Записать(Истина); по причине: Запись не верна! Значение поля "Рабочий центр" не может быть пустым!: ГрафикиРабочихЦентров: 08.06.2016, (Регистр сведений: Графики рабочих центров) Вот код Процедура ЗаполнитьРЦНажатие(Элемент) НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГруппыЗаменяемостиРабочихЦентров.Ссылка |ИЗ | Справочник.ГруппыЗаменяемостиРабочихЦентров КАК ГруппыЗаменяемостиРабочихЦентров |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; КонецЦикла; НоваяЗапись.Записать(Истина); КонецПроцедуры | |||
| 39
    
        Marry04 08.06.16✎ 10:56 | 
        При этом при помощи метода Сообщить() я вижу, что ссылки все выводятся на экран.     | |||
| 40
    
        Зая Бусечка 08.06.16✎ 10:59 | 
        Убейте меня и развейте пепел, но не понимаю, зачем для этого использовать менеджер записи... А не набор записей..     | |||
| 41
    
        Marry04 08.06.16✎ 11:00 | 
        (40)  чтоб не связываться с отбором))     | |||
| 42
    
        Feunoir 08.06.16✎ 11:05 | 
        (38) (39) А почему запись записывается один раз? Причем после второго цикла?     | |||
| 43
    
        Marry04 08.06.16✎ 11:12 | 
        (42) Процедура ЗаполнитьРЦНажатие(Элемент)
 НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГруппыЗаменяемостиРабочихЦентров.Ссылка |ИЗ | Справочник.ГруппыЗаменяемостиРабочихЦентров КАК ГруппыЗаменяемостиРабочихЦентров |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; КонецЦикла; НоваяЗапись.Записать(Истина); КонецЦикла; КонецПроцедуры если так делаю - то только один РЦ по методу сообщить появляется. | |||
| 44
    
        Marry04 08.06.16✎ 11:13 | 
        а потом выдает ошибку ту же     | |||
| 45
    
        Feunoir 08.06.16✎ 11:23 | 
        (44) Да не. Тут нужно понимать что делать. Просто так методом ненаучного тыка не решишь.
 Сколько записей выдаётся в первом запросе и сколько во втором? Не может ли быть такое, что в первом запросе последний РЦ - пустой? Хотя вряд-ли. | |||
| 46
    
        Marry04 08.06.16✎ 11:24 | 
        Процедура ЗаполнитьРЦНажатие(Элемент)
 Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГруппыЗаменяемостиРабочихЦентров.Ссылка |ИЗ | Справочник.ГруппыЗаменяемостиРабочихЦентров КАК ГруппыЗаменяемостиРабочихЦентров |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить(" " + ВыборкаДетальныеЗаписи.Ссылка); НоваяЗапись=РегистрыСведений.ГрафикиРабочихЦентров.СоздатьМенеджерЗаписи(); НоваяЗапись.Период = ТекущаяДата(); НоваяЗапись.РабочийЦентр = ВыборкаДетальныеЗаписи.Ссылка; Запрос = Новый Запрос ( " | ВЫБРАТЬ | ГрафикиРаботы.Ссылка |ИЗ | Справочник.ГрафикиРаботы КАК ГрафикиРаботы |ГДЕ | ГрафикиРаботы.Наименование = ""2 смены"" |" ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи1 = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл НоваяЗапись.ГрафикРаботы = ВыборкаДетальныеЗаписи1.Ссылка; КонецЦикла; НоваяЗапись.Записать(Истина); КонецЦикла; КонецПроцедуры Изменила чуть, новую запись менеджер делал один раз. в цикл добавила метод. но все равно не работает | |||
| 47
    
        Marry04 08.06.16✎ 11:29 | 
        первая запись только выходит.     | |||
| 48
    
        Feunoir 08.06.16✎ 11:37 | 
        (46) Открыл УПП... Смотри что получается.
 Тип реквизита РабочийЦентр в регистре ГрафикиРабочихЦентров - СправочникСсылка.РабочиеЦентры. А ты туда записываешь ссылку на справочник Справочник.ГруппыЗаменяемостиРабочихЦентров. Естественно он туда записаться не хочет и становится пустым. Тебе нужно выбирать не просто ГруппыЗаменяемостиРабочихЦентров, а табличную часть Состав, скорее всего. | |||
| 49
    
        Marry04 08.06.16✎ 11:52 | 
        (48) Таким образом мне нужно обратиться к табличной части Состав, а именно к реквизиту "Рабочий центр"справочника?     | |||
| 50
    
        Feunoir 08.06.16✎ 11:58 | 
        (49) Точно. Первый запрос должен выглядеть примерно так:
 
Ну и потом писать не 
а 
Ну, а так-то по хорошему надо всю процедуру переписывать. | |||
| 51
    
        Marry04 08.06.16✎ 12:18 | 
        При раскрытии элемента справочника ГруппыЗаменяемостиРабочихЦентров появляется табличная часть как раз Состав. Но в техноогич.карте прописано наименование элементов, а не один из элементов табл.части. То есть мне нужна как-то ссылка на наименование .а не на табл.часть     | |||
| 52
    
        Marry04 08.06.16✎ 12:21 | 
        я понимаю, что типы данных в регистре и в справочнике должны совпадать..но в техн.карте прописаны наименования именно справочника ГруппыЗаменяемостиРабочихЦентров     | |||
| 53
    
        catena 08.06.16✎ 12:42 | 
        (52)Начните с постановки задачи. У вас в голове каша. Напишите себе четкий текст задания (если его нет) и попробуйте сделать вручную пару записей. Запоминая, откуда и по каким критериям берете данные.     | |||
| 54
    
        Marry04 08.06.16✎ 12:47 | 
        Как установить графики в регистре сведений "график рабочих центров" для элементов справочника "группы заменяемости рабочих центров"?     | |||
| 55
    
        catena 08.06.16✎ 12:49 | 
        (54)Это не задача. Это вопрос. При чем абстрактный, не имеющий никакого практического смысла.     | |||
| 56
    
        catena 08.06.16✎ 12:50 | 
        И ответ к нему можно найти в СП. Даже с примерами.     | |||
| 57
    
        Feunoir 08.06.16✎ 12:54 | 
        (52) (54) Приводить учёт в соответствие с программой или наоборот дорабатывать программу до соответствия с учётом.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |