Ошибка при установке значения атрибута контекста реквизит недоступен для группы

Ошибка при установке значения атрибута контекста : Реквизит недоступен для

Я
   Старуха Шапокляк

28.05.10 — 15:20

В спр.Контрагенты добавлен реквизит «Ключ» — строка, 25символов. Надо загрузить контрагентов из Эксель. В Эксель они попали из другой программы, которая является наиболее приоритетной, чем та, в которую загружать будем. Поэтому при загрузке, надо предусмотреть несколько условий:

анализируем Ключ: Ключ не совпал

анализируем ИНН: ИНН совпал

анализируем КПП: КПП совпал

В таком случае, надо заполнить Ключ и все остальные заполненные поля данными из файла (Кроме ИНН и КПП, т.к. они совпали).

Выходит ошибка:

Ошибка при установке значения атрибута контекста (ЮрФизЛицо): Реквизит недоступен для группы

ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;

по причине:

Реквизит недоступен для группы

Вот мой код:

Ексель = новый COMОбъект(«Excel.Application»);

   
   Для ТекНомер = 1 По КоличествоСтраниц Цикл

       для н= 1 по   ВсегоКоличестовСтрок -1 цикл

           Ключ = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки).Value;

           Ключ = СтрЗаменить(Ключ, Символы.НПП, «»);                   //убрала пробел как разделитель

           
           КодКА = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +1).Value;

           КодКА = СтрЗаменить(КодКА, Символы.НПП, «»);                    

           
           ИНН = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +2).Value;

           ИНН = СтрЗаменить(ИНН, Символы.НПП, «»);                      

           
           КПП = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +3).Value;

           КПП = СтрЗаменить(КПП, Символы.НПП, «»);                      

           
           ЮРФЛ = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +4).Value;

           Название = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +5).Value;

           // …….

           
           // Ищем контрагента в справочнике по реквизиту      

           КА = Справочники.Контрагенты.НайтиПоРеквизиту(«Ключ»,Ключ);

           Если КА.Пустая() Тогда                              //не нашли с таким ключом  

               
               Если не ИНН = «» Тогда                              //ИНН не пустое в файле

                   КА = Справочники.Контрагенты;

                   СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);

                   Если НЕ СсылкаКА.Пустая() Тогда                 //нашли такой ИНН

                       
                       Если не КПП = «» Тогда                          //КПП не пустое в файле

                           СсылкаКА = КА.НайтиПоРеквизиту(«КПП»,КПП);

                           Если Не СсылкаКА.Пустая() Тогда             //нашли такое КПП

                               
                               ОбъектКА = СсылкаКА.ПолучитьОбъект();

                               
                               // вставила это условие и все равно ошибка вылетает

                               Если ОбъектКА.ЭтоГруппа Тогда         //если элемент это группа

                                   Сообщить(ОбъектКА + » — является группой!!! Пропускаем его…»);

                                   Продолжить;

                               Иначе

                                   
                                   ОбъектКА.Ключ = Ключ;

                                   
                                   //ИНН не берем, т.к. он совпал

                                   //КПП не берем, т.к. он совпал

                                   //Код не меняем, т.к. в базе уже введен код

                                   
                                   Если не ЮРФЛ = «» Тогда               //если значение «ЮРФЛ» в файле заполнено

                                       Если СокрЛП(ЮРФЛ) = «Юридическое лицо» Тогда      

                                           ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;

                                       ИначеЕсли СокрЛП(ЮРФЛ) = «Физическое лицо» Тогда  

                                           ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо;

                                       КонецЕсли;

                                   Иначе

                                       Сообщить («ЮЛ/ФЛ для контрагента » + Название + » в файле не заполнен!»);

                                   КонецЕсли;

                                   
                                   Если не Название = «» Тогда

                                       ОбъектКА.Наименование =  Название;

                                   КонецЕсли;

                                   
                                   // …                                    

                                   ОбъектКА.Записать();

                                   
                               КонецЕсли;  //если элемент это группа

                           Иначе // не нашли такое КПП

                           КонецЕсли;  //нашли такое КПП

                       КонецЕсли;  //КПП не пустое в файле

                   КонецЕсли;          //нашли такой ИНН

               КонецЕсли;  //ИНН не пустое в файле

           КонецЕсли;  //не нашли с таким ключом  

       КонецЦикла;

   КонецЦикла;

  

Партнерская программа EFSOL Oblako

   maxar

1 — 28.05.10 — 15:24

включаем отладку — ставим галку остановка по ошибке — и смотрим результаты своих ошибок…

   mikecool

2 — 28.05.10 — 15:27

«Реквизит недоступен для группы » — не надо группе устанавливать этот реквизит
смотри признаки реквизитов — если только для элемента — не устанавливай для группы

   Старуха Шапокляк

3 — 28.05.10 — 15:30

(2) Так я и поставила условие в (0):

Если ОбъектКА.ЭтоГруппа Тогда         //если элемент это группа

                                   Сообщить(ОбъектКА + » — является группой!!! Пропускаем его…»);
                                   Продолжить;
                               Иначе

   butterbean

4 — 28.05.10 — 15:31

мне одному кажется, что поиск по ИНН и поиск по КПП между собой никак не связаны??

   hhhh

5 — 28.05.10 — 15:32

(4) связаны

   mikecool

6 — 28.05.10 — 15:32

а кпп всегда уникальны?

   mikecool

7 — 28.05.10 — 15:33

(5) как? меня это тоже напрягло

   maxar

8 — 28.05.10 — 15:34

пипец — если нашли по инн — потом если есть кпп ищем по кпп —

кпп — это не уникальный реквизит — т.е. ищем всегда один и тот эе элемент по кпп

   mikecool

9 — 28.05.10 — 15:35

КА = Справочники.Контрагенты;
                   СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);
                   Если НЕ СсылкаКА.Пустая() Тогда                 //нашли такой ИНН
вот здесь будет только одна ссылка, если таковой имеется
затем ищем по кпп и находим другого контрагента

   Старуха Шапокляк

10 — 28.05.10 — 15:39

(9) спасибо, а как мне тогда в связке искать эти два значения — сначала ИНН, затем если нашли, то проверять у него КПП???

   butterbean

11 — 28.05.10 — 15:40

(10) запросом ищи

   Старуха Шапокляк

12 — 28.05.10 — 15:43

В (0) вопрос снимается, нашла где была ошибка.
Но вопрос про связь ИНН и КПП — остается открытым: Как сначала у этого контрагента проанализировать сначала ИНН, а затем у него же КПП?

   mikecool

13 — 28.05.10 — 15:43

(10) пробежалась по файлу, собрала инн-кпп в кучу, и затем параметром в (11)

   Старуха Шапокляк

14 — 28.05.10 — 15:44

(13) Легко вам сказать! Как это сделать???

   mikecool

15 — 28.05.10 — 15:47

инн-кпп в таблицу значений
таблицу значений во врем таблицу
потом запрос
типа
выбрать ИНН, КПП
поместить ВТ_Данные
Из &ТЗ;
выбрать Контрагенты.ссылка, ВТ_Данные.ИНН, ВТ_Данные.КПП
из ВТ_Данные
левое соединение справочник.контрагенты Как Контрагенты
по ВТ_Данные.ИНН = Контрагенты.ИНН И ВТ_Данные.КПП = Контрагенты.КПП

   mikecool

16 — 28.05.10 — 15:47

+15 там где нулл в ссылка — контрагент не найден

   Шапокляк

17 — 28.05.10 — 15:48

СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);

                   Если НЕ СсылкаКА.Пустая() Тогда                 //нашли такой ИНН

                       
                       Если не КПП = «» Тогда                          //КПП не пустое в файле

//////////////////////////

Если СсылкаКА.КПП=КПП Тогда

///////////////////////////

вместо вот этого:

                           СсылкаКА = КА.НайтиПоРеквизиту(«КПП»,КПП);

                           Если Не СсылкаКА.Пустая() Тогда             //нашли такое КПП

   butterbean

18 — 28.05.10 — 15:52

(17) так ты не найдешь тех, у кого один ИНН, но разные КПП

   Шапокляк

19 — 28.05.10 — 15:56

(17) Мне не надо, это к автору пожалуйста. Я только догадываться могу, что у нее там в базе происходит. Так, чуть-чуть ее код подрихтовала, не более того

   Шапокляк

20 — 28.05.10 — 15:56

19 к (18)

   Старуха Шапокляк

21 — 28.05.10 — 16:03

(17),(18) cпасибо!
Но мне бы код полегче, без таблиц значений и временных таблиц, например, как в (17). Неужели, задать простое условие: проанализировать у контрагента ИНН, а затем у него же КПП — надо такую сложную конструкцию делать???

   hhhh

22 — 28.05.10 — 16:06

(21)

ВЫБРАТЬ

   Ссылка

ИЗ

   Справочник.Контрагенты КАК Контрагенты

ГДЕ

   Контрагенты.ИНН = &ИНН

   И Контрагенты.КПП = &КПП

   Шапокляк

23 — 28.05.10 — 16:11

(21)Ну не так там и слоно, хотя я бы запросом без соединений и попробовала, что-то вроде

   Запрос.Текст =

   «ВЫБРАТЬ

   |    Контрагенты.Ссылка,

   |    Контрагенты.Представление

   |ИЗ

   |    Справочник.Контрагенты КАК Контрагенты

   |ГДЕ

   |    Контрагенты.ИНН = &ИНН

   |    И Контрагенты.КПП = &КПП»;

   Запрос.УстановитьПараметр(«ИНН», ИНН);

   Запрос.УстановитьПараметр(«КПП», КПП);

   Результат = Запрос.Выполнить();

   ВыборкаДетали = Результат.Выбрать();

ЕстьКонтрагент=0;

   Пока ВыборкаДетали.Следующий() Цикл

ЕстьКонтрагент=1;

СсылкаКА=ВыборкаДетали.ссылка;

ОбъектКА=СсылкаКА.ПолучитьОбъект();

//пиши тут что надо

   КонецЦикла;

Если ЕстьКонтрагент=0 Тогда

//НЕТ с таким ИНН и КПП

КонецЕсли;

   Старуха Шапокляк

24 — 28.05.10 — 16:19

(22), (23) — спасибо, а как мне связать ваш запрос с данными из файла (Ключ, ИНН и КПП)?

   Шапокляк

25 — 28.05.10 — 16:20

Для ТекНомер = 1 По КоличествоСтраниц Цикл

       для н= 1 по   ВсегоКоличестовСтрок -1 цикл

           Ключ = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки).Value;

           Ключ = СтрЗаменить(Ключ, Символы.НПП, «»);                   //убрала пробел как разделитель

           
           КодКА = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +1).Value;

           КодКА = СтрЗаменить(КодКА, Символы.НПП, «»);                    

           
           ИНН = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +2).Value;

           ИНН = СтрЗаменить(ИНН, Символы.НПП, «»);                      

           
           КПП = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +3).Value;

           КПП = СтрЗаменить(КПП, Символы.НПП, «»);                      

           
           ЮРФЛ = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +4).Value;

           Название = Ексель.Sheets(ТекНомер).Cells(Строки,Колонки +5).Value;

           // …….

 Запрос=Новый Запрос;

и вот сюда.

   Старуха Шапокляк

26 — 28.05.10 — 16:24

(25) Большое СПАСИБО!!!! Буду пробовать!!!
)))))))

   Старуха Шапокляк

27 — 28.05.10 — 16:34

Подскажите еще, пожалуйста, два момента:

1) Нужен вначале анализ на реквизит Ключ. Если такого ключа нет в базе, то идет запрос как в (23) и тогда этот Ключ тоже надо вбить в базу.

2) В запросе (23) я найду контрагентов, которых:
или нет с таким как в файле ИНН и КПП
или есть с таким как в файле ИНН и КПП.
Т.е. это случаи или полного совпадения или полного несовпадения. А как мне тогда найти тех, у кого ИНН совпадает, а КПП из базы или не совпадает или вообще не заполнено (в этом случае, приоритет у КПП из файла, его надо вбить).

   Старуха Шапокляк

28 — 28.05.10 — 16:38

+(27) На мой первый вопрос из (27):
Я так полагаю, что должно быть что-то вроде:

КА = Справочники.Контрагенты.НайтиПоРеквизиту(«КодSAP»,КодСап);
Если КА.Пустая() Тогда     //не нашли с таким ключом
Запрос=Новый Запрос;

СсылкаКА=ВыборкаДетали.ссылка;
ОбъектКА=СсылкаКА.ПолучитьОбъект();

Иначе //нашли с таким ключом
КонецЕсли;

Но как тогда дальше связать Ключ, ИНН и КПП? Не знаю, понятно ли я изложила свою мысль…

   mikecool

29 — 28.05.10 — 16:40

запрос в цикле — уже не оригинально
смотрим (15)

   hhhh

30 — 28.05.10 — 16:46

(29) по сравнению с тем, что было до этого, запрос в цикле — большой шаг вперед.

   Шапокляк

31 — 28.05.10 — 16:47

Запрос один и тот же почти: для Ключа

  «ВЫБРАТЬ

   |    Контрагенты.Ссылка,

   |    Контрагенты.Представление

   |ИЗ

   |    Справочник.Контрагенты КАК Контрагенты

   |ГДЕ

   |    Контрагенты.Ключ = &Ключ»;

   Запрос.УстановитьПараметр(«Ключ», Ключ);

нашла есть ли кто с таким ключом. Если нету ищем по какой-то логике. Если есть что делаем? Как вариант проверяем, совпадает ли у найденного ИНН и КПП. Если не совпадают что делаем? Перезаписываем, спрашиваем?

По вопросу ИНН и КПП. Не нашли с ИНН и КПП какими нужно. Что делаем? Ищем сначала по ИНН (запрос по аналогии сделаете, надеюсь). не нашли никого, по КПП искать бессмысленно дальше (все кто в одной налоговой имеют один и тот же КПП за редким исключением). Нашли нескольких с одним ИНН. Перебираем. У контрагента КПП не пустое и не совпадает с нашим. Что делаем? Варианты — проверяем наименование или еще что, спрашиваем у пользователя, идем дальше. У контрагента КПП пустое. Что делаем? Варианты — заполняем своим кпп, спрашиваем у пользователя, идем дальше. Короче, вы на бумажке алгоритм составьте для начала и решите что делать, а инструмент вот он.

(29) Никто не претендует на оригинальность. Пусть хоть как-то с мертвой точки сдвинется, к тому же все равно, как правило, вмешательство пользователей потребуетя в принятие решения. А ваша временная таблица убьет автора :) К тому же Ваш запрос из (15) не решает ее задачу, а для единичного прогона не сильно оптимален.

   Старуха Шапокляк

32 — 28.05.10 — 16:51

(31) Шапокляк — огромное Вам СПАСИБО!!! Что бы я делала без Вас!?
:*)

  

Шапокляк

33 — 28.05.10 — 16:51

(32) :) Успехов!

В спр.Контрагенты добавлен реквизит «Ключ» — строка, 25символов. Надо загрузить контрагентов из Эксель. В Эксель они попали из другой программы, которая является наиболее приоритетной, чем та, в которую загружать будем. Поэтому при загрузке, надо предусмотреть несколько условий: анализируем Ключ: Ключ не совпал анализируем ИНН: ИНН совпал анализируем КПП: КПП совпал В таком случае, надо заполнить Ключ и все остальные заполненные поля данными из файла (Кроме ИНН и КПП, т.к. они совпали). Выходит ошибка: Ошибка при установке значения атрибута контекста (ЮрФизЛицо): Реквизит недоступен для группы ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо; по причине: Реквизит недоступен для группы Вот мой код:

включаем отладку — ставим галку остановка по ошибке — и смотрим результаты своих ошибок…

«Реквизит недоступен для группы » — не надо группе устанавливать этот реквизит смотри признаки реквизитов — если только для элемента — не устанавливай для группы

Так я и поставила условие в :

мне одному кажется, что поиск по ИНН и поиск по КПП между собой никак не связаны??

как? меня это тоже напрягло

пипец — если нашли по инн — потом если есть кпп ищем по кпп — кпп — это не уникальный реквизит — т.е. ищем всегда один и тот эе элемент по кпп

вот здесь будет только одна ссылка, если таковой имеется затем ищем по кпп и находим другого контрагента

спасибо, а как мне тогда в связке искать эти два значения — сначала ИНН, затем если нашли, то проверять у него КПП???

В вопрос снимается, нашла где была ошибка. Но вопрос про связь ИНН и КПП — остается открытым: Как сначала у этого контрагента проанализировать сначала ИНН, а затем у него же КПП?

пробежалась по файлу, собрала инн-кпп в кучу, и затем параметром в

Легко вам сказать! Как это сделать???

инн-кпп в таблицу значений таблицу значений во врем таблицу потом запрос типа выбрать ИНН, КПП из ВТ_Данные левое соединение справочник.контрагенты Как Контрагенты по ВТ_Данные.ИНН = Контрагенты.ИНН И ВТ_Данные.КПП = Контрагенты.КПП

+15 там где нулл в ссылка — контрагент не найден

/////////////////////////// вместо вот этого:

так ты не найдешь тех, у кого один ИНН, но разные КПП

Мне не надо, это к автору пожалуйста. Я только догадываться могу, что у нее там в базе происходит. Так, чуть-чуть ее код подрихтовала, не более того

, cпасибо! Но мне бы код полегче, без таблиц значений и временных таблиц, например, как в . Неужели, задать простое условие: проанализировать у контрагента ИНН, а затем у него же КПП — надо такую сложную конструкцию делать???

ВЫБРАТЬ    Ссылка ИЗ    Справочник.Контрагенты КАК Контрагенты

Ну не так там и слоно, хотя я бы запросом без соединений и попробовала, что-то вроде

, — спасибо, а как мне связать ваш запрос с данными из файла (Ключ, ИНН и КПП)?

Большое СПАСИБО!!!! Буду пробовать!!! )))))))

Подскажите еще, пожалуйста, два момента: 1) Нужен вначале анализ на реквизит Ключ. Если такого ключа нет в базе, то идет запрос как в и тогда этот Ключ тоже надо вбить в базу. 2) В запросе я найду контрагентов, которых: или нет с таким как в файле ИНН и КПП или есть с таким как в файле ИНН и КПП. Т.е. это случаи или полного совпадения или полного несовпадения. А как мне тогда найти тех, у кого ИНН совпадает, а КПП из базы или не совпадает или вообще не заполнено (в этом случае, приоритет у КПП из файла, его надо вбить).

+ На мой первый вопрос из : Я так полагаю, что должно быть что-то вроде: Но как тогда дальше связать Ключ, ИНН и КПП? Не знаю, понятно ли я изложила свою мысль…

запрос в цикле — уже не оригинально смотрим

по сравнению с тем, что было до этого, запрос в цикле — большой шаг вперед.

Запрос один и тот же почти: для Ключа   «ВЫБРАТЬ    |    Контрагенты.Ссылка,    |    Контрагенты.Представление нашла есть ли кто с таким ключом. Если нету ищем по какой-то логике. Если есть что делаем? Как вариант проверяем, совпадает ли у найденного ИНН и КПП. Если не совпадают что делаем? Перезаписываем, спрашиваем? По вопросу ИНН и КПП. Не нашли с ИНН и КПП какими нужно. Что делаем? Ищем сначала по ИНН (запрос по аналогии сделаете, надеюсь). не нашли никого, по КПП искать бессмысленно дальше (все кто в одной налоговой имеют один и тот же КПП за редким исключением). Нашли нескольких с одним ИНН. Перебираем. У контрагента КПП не пустое и не совпадает с нашим. Что делаем? Варианты — проверяем наименование или еще что, спрашиваем у пользователя, идем дальше. У контрагента КПП пустое. Что делаем? Варианты — заполняем своим кпп, спрашиваем у пользователя, идем дальше. Короче, вы на бумажке алгоритм составьте для начала и решите что делать, а инструмент вот он. Никто не претендует на оригинальность. Пусть хоть как-то с мертвой точки сдвинется, к тому же все равно, как правило, вмешательство пользователей потребуетя в принятие решения. А ваша временная таблица убьет автора :) К тому же Ваш запрос из не решает ее задачу, а для единичного прогона не сильно оптимален.

Шапокляк — огромное Вам СПАСИБО!!! Что бы я делала без Вас!? :*)

Тэги:

Комментарии доступны только авторизированным пользователям

koljan-2008
16.10.2013 09:07 Прочитано: 2703

Здравствуйте. Столкнулся с такой проблемой: делаю выгрузку сотрудников из ЗуП, потом начинаю загружать в бухгалтерию — выскакивает ошибка: «{ВнешняяОбработка.ЗагрузкаСотрудников.МодульОбъекта(74)}: Ошибка при установке значения атрибута контекста (ДатаРождения)
Обьект[Элемент.Наименование] = Элемент.Значение;
по причине:
Реквизит недоступен для группы»
Какой реквизит для какой группы?
На сотрудника, на котором выдает ошибку, заведено два документа — 1. прием на работу 2.10 и внешнее совместительство 14.10
Проверили по данному человеку все документы — все в порядке, перезабили дату рождения — ничего не помогает! Чего я недопонимаю? Что тут можно ещё сделать? Подскажите пожалуйста!

Yandex
Возможно, вас также заинтересует

Реклама на портале

Jonsony
16.10.2013 09:52 Ответ № 1

1) какая зуп и какая бухгалтерия
2) выгрузка и загрузка чем?

если он пишет так то считает что этот элемент группа, следовательно выставлен флаг/признак

koljan-2008
16.10.2013 10:03 Ответ № 2

1с 8.2, ЗУП 2.5.72.2, Бух. предприятия 2.0.52.7 не КОРП.
насчет того, что он считает этот элемент группой я тоже думал, но где посмотреть эту галку, флаг?

Jonsony
16.10.2013 10:19 Ответ № 3

выгрузка — загрузка чем производится?


Изменено 16.10.13 10:27:08

koljan-2008
16.10.2013 10:32 Ответ № 4

производил внешней обработкой. пользуюсь ей уже давно — нареканий раньше не было.

Jonsony
16.10.2013 10:32 Ответ № 5

рискну предположить что в зуп у вас в физлицах есть группы, а в бух их нет

koljan-2008
16.10.2013 10:45 Ответ № 6

а где можно посмотреть насчет групп? так то выгружается вроде все списком
сначала выгрузка справочник физлица, потом регистр сведений ФИО физлица, далее регистр сведений паспортные данные и т.д. Все идут в алфавитном порядке

Jonsony
16.10.2013 11:27 Ответ № 7

в зуп есть штатная выгрузка в БУХ (версия выбирается в настройках)

проверить наличие групп — просто глянуть в справочнике физлиц в ЗУП

koljan-2008
16.10.2013 17:43 Ответ № 8

со штатной выгрузкой что то до меня ещё намудрили, напартачили — она перестала корректно работать. вот и пользуемся внешней обработкой. а насчет групп — завтра на работе гляну как там есть.

koljan-2008
17.10.2013 04:30 Ответ № 9

группы есть. но этот Безверхов не в группах, а просто в списке сотрудники! хотя он проживает в Икабье. группы идут по месту проживания.
кстати, группы есть и в зуп и в бух


Изменено 17.10.13 05:39:21

koljan-2008
17.10.2013 05:37 Ответ № 10

title
title

koljan-2008
17.10.2013 09:31 Ответ № 11

Что тут может быть неправильно? Подскажите, люди!

koljan-2008
22.10.2013 02:56 Ответ № 12

Вопрос закрыт!

Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.

Автор syemye, 19 сен 2022, 10:43

0 Пользователей и 1 гость просматривают эту тему.

Добрый день. Создаю в справочнике группу, выдает ошибку — «Реквизит недоступен для группы». — рис (ош1)


syemye, надо или убрать этот реквизит из формы группы
или разрешить его для группы тоже
в конфигураторе, реквизит его свойство: Использование  выбрать значение = «Для группы и элемента»

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!


LexaK, выставлено для реквизита для групп и элементов


ошибка на какой реквизит возникает? на картинке не видно, нажмите кнопку подробно.
и база сохранена, применена, перезапущена?

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!


LexaK, кнопки «подробно» нет. Сохранена, применена, перезапущена. Выставил на все реквизиты элемент и группы


даа, кнопки подробно нет….
а на надпись «Сформировать отчет об ошибке» хотя бы из любопытства нажимали?
попробуйте нажмите, посмотрите отчет, выложите сюда, там точно должна быть более подробная информация.

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!


LexaK, из любопытства нажимал — что именно формирует отчет — там информации нет.
добавил режим отладки — вот ошибка подробнее


Процедура ПередЗаписью(Отказ)
    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;
    МенеджерГВК = ОбщийМодульГВК.МенеджерГВК();   
    МенеджерВеселов= ОбщийМодульГВК.МенеджерВеселов();
    ФизЛицоПользователя = Пользователи.ТекущийПользователь().ФизическоеЛицо;
    МожноРедактировать = Ложь;
    Если Пользователи.ТекущийПользователь() =  МенеджерВеселов Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли Пользователи.ТекущийПользователь() =  МенеджерГВК Тогда
        МожноРедактировать = Истина;   
        ПроверкаНаГруппу = Ложь;
    ИначеЕсли ОбщийМодульГВК.ЕстьПраво("ПраваОКС") Тогда
        МожноРедактировать = Истина;   
    КонецЕсли;     
    Если МожноРедактировать Тогда 
        Наименование = СокрЛП(Наименование);
        Наименование =Врег(Лев(Наименование,1))+ Сред(Наименование,2);
        Если ЭтоГруппа Тогда
        Иначе
            Если ПустаяСтрока(НаименованиеПолное) ТОгда
                НаименованиеПолное = Наименование;   
            КонецЕсли;

                        Если ПустаяСтрока(Этажи) и Этаж<>0 Тогда
                Этажи = СокрЛП(Этаж);
            КонецЕсли;

                    КонецЕсли; 
        Если ЗначениеЗаполнено(ОбъектЗадания) ТОгда

                        Отбор = Новый Структура;
            Отбор.Вставить("ОбъектЗадания",ОбъектЗадания);
            Поиск =  ОбъектыЗадания.НайтиСтроки(Отбор); 
            Если Поиск.Количество()= 0 Тогда 
                ОбъектыЗадания.Добавить().ОбъектЗадания = ОбъектЗадания;

                            КонецЕсли;

                    КонецЕсли;
        КоличествоОбъектовЗадания = ОбъектыЗадания.Количество();

            Иначе   
        ТекстСообщения = "Вам запрещено редактирование данные справочника!!!"+Символы.ПС+"Обратитесь к Веселову Сергею Владимировичу!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Наименование", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
    КонецЕсли;   
    Если ЭтоГруппа Тогда
    Иначе 
        Если КоличествоОбъектовЗадания = 0 Тогда
                ТекстСообщения = "Не выбран Объект задания!!!";
        //ТекстСообщения = "Выберите группу номенклатуры для создания!!!"+Символы.ПС +"Номенклатура не будет эаписана!";
        //ПредупреждениеДляКлиента(Текст);
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "ОбъектЗадания", , Отказ);    //"Объект.Родитель"           
        Отказ = Истина;
         КонецЕсли;
        КонецЕсли;
КонецПроцедуры


поставьте условие остановки по ошибке (в разделе Отладка)
(не понятно что у вас с базой, из-за чего она не показывает имя ошибочного Реквизита)
а у вас случайно Реквизита с именем «Реквизит» нет?

  • 1 пользователь сказал спасибо!

если помогло нажмите: Спасибо!



1

2

3

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Леся88

Дата регистрации: 07.09.2012
Сообщений: 57

Здравствуйте! Подскажите как добавить новую группу в справочник Контрагенты, чтоб он имел иерархический вид в 1С комплексной автоматизации. При нажатии кнопки добавить группу программа пишет: «Ошибка при установке значения атрибута контекста (ОсновнойМенеджерПокупателя)». При открытии более подробной ошибки пишет :
Ошибка при выполнении обработчика — ‘ОбработкаЗаполнения’
по причине:
{Справочник.Контрагенты.МодульОбъекта(71)}: Ошибка при установке значения атрибута контекста (ОсновнойМенеджерПокупателя)

по причине:
Реквизит недоступен для группы

ITSKonsultant

Дата регистрации: 11.09.2013
Сообщений: 220

Леся88, вносились ли изменения? если да то надо по отладчику смотреть из за чего ошибка

1С:Франчайзи «ИТС Консультант»

http://itsconsultant.ru

Контактный телефон: 8 (495) 762-92-60
Email: info@itsconsultant.ru

Леся88

Дата регистрации: 07.09.2012
Сообщений: 57

ITSKonsultant, изменения не вносились.

kreker263

Дата регистрации: 12.04.2014
Сообщений: 10

такая же проблема :(

При нажатии на кнопку конфигуратор вылезет следующее

ОсновнойМенеджерПокупателя = глЗначениеПеременной(«глТекущийПользователь» ;) ;
НовыйМенеджер = МенеджерыПокупателя.Добавить();
НовыйМенеджер.МенеджерПокупателя = ОсновнойМенеджерПокупателя;

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20842

kreker263, Номер релиза платформы?

kreker263

Дата регистрации: 12.04.2014
Сообщений: 10

Платформа 1С:Предприятие 8.2 (8.2.19.83)

Конфигурация

Комплексная автоматизация, редакция 1.1 (1.1.46.1) (

http://v8.1c.ru/ka/

)
Copyright (С) ООО «1C», 2010-2014. Все права защищены
(

http://www.1c.ru/

)

также пробовал на платформе 8.3.4.465 — проблема осталась

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20842

kreker263 пишет:

Цитата

При нажатии на кнопку конфигуратор вылезет следующее

Расшифруйте, что это значит?

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20842

kreker263, проблема не подтверждается.

kreker263

Дата регистрации: 12.04.2014
Сообщений: 10

Prikum,

К сожалению не знаю когда это проблема возникла. Купили неделю назад, установили, пользовалась бухгалтер…. говорит что только данные заносила. А когда попыталась добавить группу в Контрагентах появилась ошибка

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20842

kreker263, скорее всего у вас проблема от того, что вы работаете под неавторизованным пользователем, создайте пользователя, пропишите ему права и попробуйте снова.

  1. Здравствуйте, коллеги!

    Вот что побудило меня обратиться к Вам:

    Создаю в Конвертации правила обмена данными между УТ и Бух. Требуется искать элементы справочника Контрагенты в базе-приемнике исключительно по реквизиту ИНН. Указываю данный рекизит как поле для поиска. При загрузке вылетает ошибка

    ВнешняяОбработка.УниверсальныйОбменДаннымиXML(3605)}: Ошибка при установке значения атрибута контекста (ИНН): Реквизит недоступен для группы

    Суть ошибки понятна, однако как ее обойти? Где указать, что поиск для группы нужно производить таким-то способом, а для элемена — иначе? Никак не допру. Пробовал пользоваться событием «Поля поиска», однако в нем можно использовть только те поля, которые предопределены для поиска. Замкнутый круг получается.

    Может кто сталкивался?


  2. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    При выгрузке проверяй на группа это или нет.

  3. Группы должны выгружаться. Структура справочника должна при загрузке повторять структуру базы-источника, однако поиск элементов должен быть строго по ИНН, и если элемента с таким ИНН не найдено, то создается новый.


  4. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Хм.. вроде в конвертации даже был такой пример… Сейчас отчаливаю — по приходу посмотрю, что там такое.


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Содержание:

1.       Ошибка при установке значения атрибута контекста

2.       Ошибка при получении значения атрибута контекста

Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.  

1.    Ошибка при установке значения атрибута контекста

Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута. 

Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.  

2.    Ошибка при получении значения атрибута контекста

Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.

При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).  

Специалист компании «Кодерлайн»

Александр Суворов

Понравилась статья? Поделить с друзьями:

Другие крутые статьи на нашем сайте:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии