Ошибка при установке значения атрибута контекста : Реквизит недоступен для |
Я |
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;
// …….
// Ищем контрагента в справочнике по реквизиту
КА = Справочники.Контрагенты.НайтиПоРеквизиту(«Ключ»,Ключ);
Если КА.Пустая() Тогда //не нашли с таким ключом
Если не ИНН = «» Тогда //ИНН не пустое в файле
КА = Справочники.Контрагенты;
СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);
Если НЕ СсылкаКА.Пустая() Тогда //нашли такой ИНН
Если не КПП = «» Тогда //КПП не пустое в файле
СсылкаКА = КА.НайтиПоРеквизиту(«КПП»,КПП);
Если Не СсылкаКА.Пустая() Тогда //нашли такое КПП
ОбъектКА = СсылкаКА.ПолучитьОбъект();
// вставила это условие и все равно ошибка вылетает
Если ОбъектКА.ЭтоГруппа Тогда //если элемент это группа
Сообщить(ОбъектКА + » — является группой!!! Пропускаем его…»);
Продолжить;
Иначе
ОбъектКА.Ключ = Ключ;
//ИНН не берем, т.к. он совпал
//КПП не берем, т.к. он совпал
//Код не меняем, т.к. в базе уже введен код
Если не ЮРФЛ = «» Тогда //если значение «ЮРФЛ» в файле заполнено
Если СокрЛП(ЮРФЛ) = «Юридическое лицо» Тогда
ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
ИначеЕсли СокрЛП(ЮРФЛ) = «Физическое лицо» Тогда
ОбъектКА.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо;
КонецЕсли;
Иначе
Сообщить («ЮЛ/ФЛ для контрагента » + Название + » в файле не заполнен!»);
КонецЕсли;
Если не Название = «» Тогда
ОбъектКА.Наименование = Название;
КонецЕсли;
// …
ОбъектКА.Записать();
КонецЕсли; //если элемент это группа
Иначе // не нашли такое КПП
КонецЕсли; //нашли такое КПП
КонецЕсли; //КПП не пустое в файле
КонецЕсли; //нашли такой ИНН
КонецЕсли; //ИНН не пустое в файле
КонецЕсли; //не нашли с таким ключом
КонецЦикла;
КонецЦикла;
1 — 28.05.10 — 15:24
включаем отладку — ставим галку остановка по ошибке — и смотрим результаты своих ошибок…
2 — 28.05.10 — 15:27
«Реквизит недоступен для группы » — не надо группе устанавливать этот реквизит
смотри признаки реквизитов — если только для элемента — не устанавливай для группы
3 — 28.05.10 — 15:30
(2) Так я и поставила условие в (0):
Если ОбъектКА.ЭтоГруппа Тогда //если элемент это группа
Сообщить(ОбъектКА + » — является группой!!! Пропускаем его…»);
Продолжить;
Иначе
4 — 28.05.10 — 15:31
мне одному кажется, что поиск по ИНН и поиск по КПП между собой никак не связаны??
5 — 28.05.10 — 15:32
(4) связаны
6 — 28.05.10 — 15:32
а кпп всегда уникальны?
7 — 28.05.10 — 15:33
(5) как? меня это тоже напрягло
8 — 28.05.10 — 15:34
пипец — если нашли по инн — потом если есть кпп ищем по кпп —
кпп — это не уникальный реквизит — т.е. ищем всегда один и тот эе элемент по кпп
9 — 28.05.10 — 15:35
КА = Справочники.Контрагенты;
СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);
Если НЕ СсылкаКА.Пустая() Тогда //нашли такой ИНН
вот здесь будет только одна ссылка, если таковой имеется
затем ищем по кпп и находим другого контрагента
10 — 28.05.10 — 15:39
(9) спасибо, а как мне тогда в связке искать эти два значения — сначала ИНН, затем если нашли, то проверять у него КПП???
11 — 28.05.10 — 15:40
(10) запросом ищи
12 — 28.05.10 — 15:43
В (0) вопрос снимается, нашла где была ошибка.
Но вопрос про связь ИНН и КПП — остается открытым: Как сначала у этого контрагента проанализировать сначала ИНН, а затем у него же КПП?
13 — 28.05.10 — 15:43
(10) пробежалась по файлу, собрала инн-кпп в кучу, и затем параметром в (11)
14 — 28.05.10 — 15:44
(13) Легко вам сказать! Как это сделать???
15 — 28.05.10 — 15:47
инн-кпп в таблицу значений
таблицу значений во врем таблицу
потом запрос
типа
выбрать ИНН, КПП
поместить ВТ_Данные
Из &ТЗ;
выбрать Контрагенты.ссылка, ВТ_Данные.ИНН, ВТ_Данные.КПП
из ВТ_Данные
левое соединение справочник.контрагенты Как Контрагенты
по ВТ_Данные.ИНН = Контрагенты.ИНН И ВТ_Данные.КПП = Контрагенты.КПП
16 — 28.05.10 — 15:47
+15 там где нулл в ссылка — контрагент не найден
17 — 28.05.10 — 15:48
СсылкаКА = КА.НайтиПоРеквизиту(«ИНН»,ИНН);
Если НЕ СсылкаКА.Пустая() Тогда //нашли такой ИНН
Если не КПП = «» Тогда //КПП не пустое в файле
//////////////////////////
Если СсылкаКА.КПП=КПП Тогда
///////////////////////////
вместо вот этого:
СсылкаКА = КА.НайтиПоРеквизиту(«КПП»,КПП);
Если Не СсылкаКА.Пустая() Тогда //нашли такое КПП
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). Неужели, задать простое условие: проанализировать у контрагента ИНН, а затем у него же КПП — надо такую сложную конструкцию делать???
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»,КодСап);
Если КА.Пустая() Тогда //не нашли с таким ключом
Запрос=Новый Запрос;
…
СсылкаКА=ВыборкаДетали.ссылка;
ОбъектКА=СсылкаКА.ПолучитьОбъект();
…
Иначе //нашли с таким ключом
КонецЕсли;
Но как тогда дальше связать Ключ, ИНН и КПП? Не знаю, понятно ли я изложила свою мысль…
29 — 28.05.10 — 16:40
запрос в цикле — уже не оригинально
смотрим (15)
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 |
|
||
---|---|---|---|
|
Здравствуйте. Столкнулся с такой проблемой: делаю выгрузку сотрудников из ЗуП, потом начинаю загружать в бухгалтерию — выскакивает ошибка: «{ВнешняяОбработка.ЗагрузкаСотрудников.МодульОбъекта(74)}: Ошибка при установке значения атрибута контекста (ДатаРождения) |
Yandex |
|
||
---|---|---|---|
|
Jonsony |
|
||
---|---|---|---|
|
1) какая зуп и какая бухгалтерия
2) выгрузка и загрузка чем? если он пишет так то считает что этот элемент группа, следовательно выставлен флаг/признак |
koljan-2008 |
|
||
---|---|---|---|
|
1с 8.2, ЗУП 2.5.72.2, Бух. предприятия 2.0.52.7 не КОРП. |
Jonsony |
|
||
---|---|---|---|
|
выгрузка — загрузка чем производится?
Изменено 16.10.13 10:27:08 |
koljan-2008 |
|
||
---|---|---|---|
|
производил внешней обработкой. пользуюсь ей уже давно — нареканий раньше не было. |
Jonsony |
|
||
---|---|---|---|
|
рискну предположить что в зуп у вас в физлицах есть группы, а в бух их нет |
koljan-2008 |
|
||
---|---|---|---|
|
а где можно посмотреть насчет групп? так то выгружается вроде все списком |
Jonsony |
|
||
---|---|---|---|
|
в зуп есть штатная выгрузка в БУХ (версия выбирается в настройках)
проверить наличие групп — просто глянуть в справочнике физлиц в ЗУП |
koljan-2008 |
|
||
---|---|---|---|
|
со штатной выгрузкой что то до меня ещё намудрили, напартачили — она перестала корректно работать. вот и пользуемся внешней обработкой. а насчет групп — завтра на работе гляну как там есть. |
koljan-2008 |
|
||
---|---|---|---|
|
группы есть. но этот Безверхов не в группах, а просто в списке сотрудники! хотя он проживает в Икабье. группы идут по месту проживания.
кстати, группы есть и в зуп и в бух Изменено 17.10.13 05:39:21 |
koljan-2008 |
|
||
---|---|---|---|
|
|
koljan-2008 |
|
||
---|---|---|---|
|
Что тут может быть неправильно? Подскажите, люди! |
koljan-2008 |
|
||
---|---|---|---|
|
Вопрос закрыт! |
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему. |
Автор 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, скорее всего у вас проблема от того, что вы работаете под неавторизованным пользователем, создайте пользователя, пропишите ему права и попробуйте снова.
-
Здравствуйте, коллеги!
Вот что побудило меня обратиться к Вам:
Создаю в Конвертации правила обмена данными между УТ и Бух. Требуется искать элементы справочника Контрагенты в базе-приемнике исключительно по реквизиту ИНН. Указываю данный рекизит как поле для поиска. При загрузке вылетает ошибка
ВнешняяОбработка.УниверсальныйОбменДаннымиXML(3605)}: Ошибка при установке значения атрибута контекста (ИНН): Реквизит недоступен для группы
Суть ошибки понятна, однако как ее обойти? Где указать, что поиск для группы нужно производить таким-то способом, а для элемена — иначе? Никак не допру. Пробовал пользоваться событием «Поля поиска», однако в нем можно использовть только те поля, которые предопределены для поиска. Замкнутый круг получается.
Может кто сталкивался?
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
При выгрузке проверяй на группа это или нет.
-
Группы должны выгружаться. Структура справочника должна при загрузке повторять структуру базы-источника, однако поиск элементов должен быть строго по ИНН, и если элемента с таким ИНН не найдено, то создается новый.
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Хм.. вроде в конвертации даже был такой пример… Сейчас отчаливаю — по приходу посмотрю, что там такое.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов