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

[Практика программирования] Управляемые формы 1С 8: как программно изменить запрос динамического списка и программно вывести колонку добавленного реквизита списка

Ранее уже описывалось в соответствующей статье то, как разместить программно в форме колонку реквизита объекта базы (например, документа или справочника). В этой статье будет рассмотрено как программно добавить колонку с флажком в список управляемой формы с динамическим списком, данные для которого выбираются произвольным запросом.

Для программного добавления элементов управляемой формы должно быть учтено условие о том, что добавление происходит на стороне сервера, а не на клиенте (не в процедуре «ПриОткрытии», как это было в обычном приложении). И так можно ошибочно подумать по старой привычке (если есть опыт программирования в обычном интерфейсе), учитывая архитектуру платформы 1С: Предприятие 8.2 и 8.3. Ведь процедура «ПриОткрытии» формы есть и в управляемом приложении, но через не создать программно и не разместить элементы для прикладной задачи. Поэтому «&НаСервере» и преимущественно в процедуре «ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)» формы документа или элемента справочника или формы списка теперь происходит программное добавление каких-либо элементов формы.

В общем информация о том, как программно изменить текст запроса динамического списка, использующего произвольный запрос можно найти на странице сайта ИТС 1С, если у Вас есть доступ. Но если доступа нет, то можете сильно не расстраиваться — информация на странице как и во многих случаях методологической информации от 1С носит условно практический характер. А это означает, что мелочи и нюансы, о которых бы было неплохо упомянуть на указанной странице ИТС, не упомянуты никак. И их понимание будет происходить на практике. Вот часть такой практики изложена ниже на прикладной задаче.

Нажатие на изображении увеличит его
1С 8, код, управляемый интерфейс, программное изменение запроса динамического списка реквизита формы
Рис. 1. Пример теоретического кода для программного изменения текста произвольного динамического списка для управляемой формы в 1С 8. 

Прикладная задача заключалась в том, чтобы выводить программно в управляемую форму списка документов «Реализация товаров и услуг» колонку добавленного реквизита документа. Реквизит с именем «ДопМФ_Отгружено» тип «Булево», в данном примере добавлен в расширении, но может быть и добавлен в основной конфигурации, если она на частичной поддержке. Как вывести программно элемент формы, содержащей флажок, добавленного реквизита, повторимся, можно изучить в соответствующей статье, о которой уже упоминалось в начале страницы.

1С 8, как программно изменить запрос динамического списка, чтобы вывести добавленный реквизит объекта конфигурации

Рис. 2. Пример добавленного реквизита объекта конфигурации (документа) в 1С 8 для дальнейшего программного вывода колонки в управляемую форму списка объекта.

Прежде чем перейти непосредственно к программному добавлению колонки элемента таблицы формы нужно добавить его выбор в текст запроса динамического списка. Таким образом подготовительный рабочий исполняемый код получается примерно следующим:

1 | СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
2 | СвойстваСписка.ОсновнаяТаблица = «Документ.РеализацияТоваровУслуг»;
3 | СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
4 | ИсхТекстаЗапроса = СписокРеализацииТоваровУслуг.ТекстЗапроса;
5 |
|
СвойстваСписка.ТекстЗапроса = СтрЗаменить(ИсхТекстаЗапроса, «ВЫБРАТЬ», «ВЫБРАТЬ»+Символы.ПС+«РеализацияТоваровУслуг.ДопМФ_Отгружено КАК ДопМФ_Отгружено,»);
6 |
|
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокРеализацииТоваровУслуг, СвойстваСписка);
7 | //СписокРеализацииТоваровУслуг.Параметры.УстановитьЗначениеПараметра(«Параметр1», 42);

Прокомментируем его основные моменты. В строке 1 происходит получение структуры через функцию «СтруктураСвойствДинамическогоСписка()» общего модуля «ОбщегоНазначения» для заполнения ее значений и передачи для заполнения свойств динамического списка. Для ключа «ОсновнаяТаблица» структуры в строке 2 указывается название основной таблицы, которая используюется для динамического списка, в примере это «Документ.РеализацияТоваровУслуг». Значение ключа структуры в строке 3 «ДинамическоеСчитываниеДанных» в значении «Истина». В строках 4 и 5 ведется произвольная модификация запроса.

Нажатие на изображении увеличит его
1С 8, пример исходного текста произвольного запроса динамического списка, как изменить программно,
Рис. 3. Пример исходного текста произвольного запроса динамического списка реквизита управляемой формы списка документов.

Можно просто подготовить новый или измененный исходный текст запроса для указания его в ключе «ТекстЗапроса» структуры. В данном же случае была использована хитрость, чтобы минимизировать зависимость от изменений разработчиков. Происходит модификация исходного текста запроса, который определили разработчики, за счет замены подстроки «ВЫБРАТЬ», которая есть в любом запросе, на подстроку так же содержащее это обязательное слово текста запроса и текст для выборки значения добавленного реквизита документа «ДопМФ_Отгружено». Таким образом, доработка в расширении может сломаться тогда, когда разработчики существенным образом изменять исходный текст запроса. И на примере строки 5 помещаем новый вариант текста запроса в структуру. В данном примере получилось, что запрос содержит одну дополнительную строчку, чтобы выбирать значения добавленного реквизита. Порядок следования полей выборки в запросе для динамического списка не имеет значения.

Т.е. в практической задаче начало запроса программно изменялось:

С:

ВЫБРАТЬ

    РеализацияТоваровУслуг.Ссылка,

На:

ВЫБРАТЬ

    РеализацияТоваровУслуг.ДопМФ_Отгружено КАК ДопМФ_Отгружено,

    РеализацияТоваровУслуг.Ссылка,

Особенно обратим внимание на то, к каким объектам ведется обращение в строке 7, когда выполняется установка новой настройки для динамического списка с помощью процедуры «УстановитьСвойстваДинамическогоСписка» общего модуля «ОбщегоНазначения». В этом месте важно не перепутать, т.к. в типовой конфигурации названия элемента формы таблицы-списка и реквизита формы одинаковые. А важно, что первым параметром передается элемент управляемой формы — Таблица реквизита формы. Не перепутать его с названием реквизита формы, к которому ранее обращались для получения текста исходного запроса. Вторым параметром передается заполненная структура. Строка 7 в данном примере закомментирована, т.к. в данной прикладной задаче в тексте запроса не содержится параметров. Но, если параметр  есть, то устанавливается через свойство «Параметры» и метод «УстановитьЗначениеПараметра» реквизита управляемой формы, а не элемента формы. Установка значения по имени параметра по коду как для классического запроса в 1С: первое значение — текстовое имя параметра, второе значение — собственно значение для параметра.

Нажатие на изображении увеличит его
1С 8, как программно изменить текст запроса динамического списка реквизита управляемой формы
Рис. 4. Сравнение одноименных реквизита и элемента управляемой формы 1С 8 для программного изменения текста произвольного запроса динамического списка этого реквизита формы.

После модификации текста произвольного динамического запроса реквизита управляемой формы 1С 8, становится возможным размещение колонки нового реквизита. И теперь рассмотрим код для программного вывода, размещения, добавления (как будет угодно) колонки в элемент-таблицу формы. 

Нажатие на изображении увеличит его
1С 8, как программно вывести, добавить колонку из запроса динамического списка для добавленного реквизита справочника, документа
Рис. 5. Пример кода в 1С 8 для программного вывода колонки нового реквизита объекта конфигурации, в частности документа, в элемент «Таблица» управляемой формы 

По логике программного вывода в прикладной задачи новая колонка, напомним с флажком, должна выводиться сразу после колонки «Номер», содержащей данные номеров документов списка. Код на скриншоте содержит условие на то, что если колонка «Номер» по каким то причинам, например скрыта пользователем в управляемой форме, что вполне может быть (странно но может быть, ведь номер для документа является ключевым реквизитом для работы пользователей), то тогда новая колонка будет выведена самой первой в списке.

1 | ТаблицаФормы = Элементы.СписокРеализацииТоваровУслуг;
2 | КолонкаВставки = ТаблицаФормы.ПодчиненныеЭлементы.Найти(«Номер»);
3 |  
4 | КолонкаОтгружено = Элементы.Вставить(«_Отгружено», Тип(«ПолеФормы»), ТаблицаФормы, КолонкаВставки);
5 | КолонкаОтгружено.Вид = ВидПоляФормы.ПолеФлажка;
6 | КолонкаОтгружено.Заголовок = «О.»;
7 | КолонкаОтгружено.Подсказка = «Отгружено»;
8 | КолонкаОтгружено.ТолькоПросмотр = Истина;
9 | КолонкаОтгружено.ШиринаЭлемента = 5;
10 | КолонкаОтгружено.ПутьКДанным = «СписокРеализацииТоваровУслуг.ДопМФ_Отгружено»;

Есть небольшие отличия от случая, который уже упоминался выше, добавления колонки для элемента формы Таблица динамического списка, как было описано смежной статье. В смежном случае был пример для таблицы, данными (ПутьКДанным) которой выступал «динамический список», но у которого основанием выступала таблица, а не произвольный запрос. Если отличия не учесть, то будут просто возникать ошибки. В данном же примере 

Отличия заключаются в двух местах кода. Во-первых, это обращение к свойству «ШиринаЭлемента, а не просто «Ширина» как в случае, если колонка — это программно выводимая колонка динамического списка, но у которого указана «Основная таблица» и не используется произвольный запрос. Т.е. для программно добавляемой колонки динамического списка с произвольным запросом указывается свойство «ШиринаЭлемента».

Во-вторых, очень важно правильно указать значение свойства «ПутьКДанным», иначе можно получить ошибку:

Нажатие на изображении увеличит его
1С 8, ошибка, Ошибка при установке значения атрибута контекста (ПутьКДанным) по причине: Недопустимое значение
Рис. 6. Пример ошибки «Недопустимое значение» при указании неверного значения для свойства «ПутьКДанным» элемента управляемой формы .

{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(26)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)

КолонкаОтгружено.ПутьКДанным = «Объект.СписокРеализацииТоваровУслуг.ДопМФ_Отгружено»; 

по причине:

Недопустимое значение

Недопустимое значение

Конечно, подобную ошибку можно «поймать» и при других условиях. Но когда она касается свойства «ПутьКДанным», то это явно говорит о том, что указанное строковое значение попросту не верное. Следует тщательно проанализировать корректность ее составления, т.к. в реквизитах управляемых форм можно запутаться.

Нажатие на изображении увеличит его
1С 8, программирование, как программно вывести, добавить элементы управляемой формы, колонку реквизита запроса динамического списка
Рис. 7. Демонстрация того, что данные элемента формы Таблица — это динамический произвольный запрос.

В текущей задаче реквизит формы (он не основной) носит имя «СписокРеализацийТоваровУслуг», а не так, как часто можно встретить в конфигурации, что основной реквизит формы носит имя «Объект». И значения для добавленной колонки берется из реквизита типа «ДинамическийСписок» и для элемента формы. Поэтому строка для «ПутьКДанным» — «СписокРеализацииТоваровУслуг.ДопМФ_Отгружено» с указанием через «.» имени нового реквизита.

Это все условия и нюансы, с которыми пришлось столкнуться на практике для программной модификации произвольного запроса динамического списка реквизита управляемой формы в 1С 8, чтобы потом программно вывести колонку нового реквизита объекта конфигурации базы в элемент «Таблица» формы .

Оцените, оказалась ли эта публикация полезна для Вас?




© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

25-11-2021

Журавлев А.С.
(Сайт azhur-c.ru)

Назад

Код 1C v 8.3

 // Реквизиты
ДобавляемыеРеквизиты = Новый Массив;

ИмяТаблицы = "КомандыДополнительныхОбработок";
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов("ТаблицаЗначений")));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ДополнительныеОтчетыИОбработки"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ВариантЗапуска", Новый ОписаниеТипов("ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ИмяЭлемента", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Представление", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Идентификатор", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ЭтоОтчет", Новый ОписаниеТипов("Булево"), ИмяТаблицы));

Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);

//реквизит
ИмяЭлемента = "Добавлен" + ИндексЭлемента;
Реквизит = Новый РеквизитФормы(ИмяЭлемента, ОписаниеТипов);
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);

//команда печать
ИмяКомандыПечать = "ДобавленПечать" + ИндексЭлемента;
КомандаПечать = Команды.Добавить(ИмяКомандыПечать);
КомандаПечать.Действие = "ПечатьДокумента";
КомандаПечать.Подсказка = НСтр("ru = 'Печать документа...'");

//элемент формы
//Родитель                     = Элементы.ГруппаСформированныеДокументы;
Элемент                      = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементГруппа);
Элемент.Вид                  = ВидПоляФормы.ПолеНадписи;
Элемент.ПутьКДанным          = ИмяЭлемента;
Элемент.Гиперссылка          = Истина;
Элемент.ПоложениеЗаголовка   = ПоложениеЗаголовкаЭлементаФормы.Нет;

ЭтаФорма[ИмяЭлемента] = Документ;

//кнопка печать
ИмяЭлементаПечать = "ДобавленПечать" + ИндексЭлемента;
ЭлементПечать = Элементы.Добавить(ИмяЭлементаПечать, Тип("КнопкаФормы"), ЭлементГруппа);
ЭлементПечать.Картинка = БиблиотекаКартинок.Печать;
ЭлементПечать.Отображение = ОтображениеКнопки.Картинка;
ЭлементПечать.ИмяКоманды = ИмяКомандыПечать;

ПолеФормы (FormField)

ПутьКДанным (DataPath)

Использование: Чтение и запись.

Описание:

Тип: Строка. Содержит путь к реквизиту, с которым связан объект.

Доступность: Сервер.

Примечание: Установка значения возможна, если значение еще не задано.

Вроде все просто и понятно. В теории. А на практике вот что:

Спр = Справочники.ЗадачиДляПодразделений.ВыбратьИерархически();

Пока Спр.Следующий() Цикл

АдресКартинки = ПрисоединенныеФайлы.ПолучитьДанныеФайла(Спр.ФайлКартинки, ИдентификаторФормы).СсылкаНаДвоичныеДанныеФайла;

ЭлементКартинка = ЭтаФорма.Элементы.Добавить(Спр.Код,Тип(«ПолеФормы»),ЭлементГруппа);

ЭлементКартинка.Вид = ВидПоляФормы.ПолеКартинки;

ЭлементКартинка.ПутьКДанным = АдресКартинки;

КонецЕсли;

Выдает ошибку: {Форма.Форма.Форма(29)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)

           ЭлементКартинка.ПутьКДанным = АдресКартинки;

по причине:

Недопустимое значение

Проверил. «АдресКартинки» имеет тип Строка. Может проблема в том, что «Установка значения возможна, если значение еще не задано.»?

Как быть?

Gectar

0 / 0 / 0

Регистрация: 10.08.2016

Сообщений: 18

1

1C 8.x (тонкий)

Ошибка при указании ПутьКДанным в программно созданной таблице

10.08.2016, 13:34. Показов 57867. Ответов 7

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Переделываю форму документа КорректировкаЗаписейРегистров под управляемое приложение. Если вручную из реквизитов на форму документа перетащить нужное движение по регистру никаких проблем не возникает: создается таблица, добавляются колонки. Для таблицы регистра бухгалтерии Хозрасчетный свойство ПутьКДанным заполняется значением «Объект.Движения.Хозрасчетный». Но если я программно создаю таблицу и пытаюсь присвоить этому свойству это же значение,

1C
1
2
НоваяТЧ = Элементы.Добавить("Таблица"+СтрокаТаблицыРегистров.Имя,Тип("ТаблицаФормы"), НоваяСтраница); //НоваяСтраница - элем. формы на котором создаю таблицу
НоваяТЧ.ПутьКДанным = "Объект.Движения.Хозрасчетный";

то выскакивает «ошибка при установке значения атрибута контекста (ПутьКДанным)» по причине Недопустимое значение. Из-за чего тут ошибка?

Пробовал привязывать к созданной таблице табличную часть документа ТаблицаРегистровНакопления — свойству ПутьКДанным присвоил значение «Объект.ТаблицаРегистровНакопления», потом программно же создал колонки таблице, указал ПутьКДанным для них и все отработало без нареканий.



0



Dethmontt

Модератор

Эксперт 1С

3722 / 2917 / 574

Регистрация: 10.03.2011

Сообщений: 11,489

Записей в блоге: 1

11.08.2016, 01:57

2

По моему Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента

Добавлено через 13 минут
И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.

Добавлено через 1 минуту
Нужно создавать свой НаборЗаписей (реквизит формы) устанавливать отбор и к нему привязывать ТаблицуФормы

Добавлено через 58 секунд
Примерчик

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаСервере
Процедура СоздатьРеквизитыФормыНаборовЗаписейРегистров()
 
    ДобавляемыеРеквизиты = Новый Массив;
    УдаляемыеРеквизиты   = Новый Массив;
    
    Для каждого СтрокаРегистра Из СписокРегистров Цикл
        
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        ТипРеквизита  = Новый ОписаниеТипов(СтрокаРегистра.ВидРегистра + "НаборЗаписей." + СтрокаРегистра.ИмяРегистра);
        НовыйРеквизит = Новый РеквизитФормы(ИмяРеквизита, ТипРеквизита, , , Истина);
        ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
        
    КонецЦикла;
    
    Если ДобавляемыеРеквизиты.Количество() > 0 Тогда
        ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
    КонецЕсли;
 
КонецПроцедуры
 
&НаСервере
Процедура АктивироватьНаборыЗаписей()
    Для Каждого СтрокаРегистра Из СписокРегистров Цикл 
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        НаборЗаписей = РеквизитФормыВЗначение(ИмяРеквизита);
        НаборЗаписей.Отбор.Регистратор.Установить(Документ);
        НаборЗаписей.Прочитать();
        ЗначениеВРеквизитФормы(НаборЗаписей, ИмяРеквизита);
    КонецЦикла;
КонецПроцедуры



0



0 / 0 / 0

Регистрация: 10.08.2016

Сообщений: 18

11.08.2016, 10:56

 [ТС]

3

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента

Это так, но я же не с этим свойством связываю таблицу. Тип свойства Движения — КоллекцияДвижений. Содержит эта коллекция наборы записей регистров. С одним из таких наборов я и пытаюсь связать таблицу, ведь наборы вполне себе конвертируются на клиенте.

Добавлено через 7 минут

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

Нужно создавать свой НаборЗаписей (реквизит формы) устанавливать отбор и к нему привязывать ТаблицуФормы

Как вариант я тоже думал так сделать, но хотелось бы как-то напрямую к данным, чтобы потом не заморачиваться с обработкой добавления/удаления/изменения записей. В обычном приложении именно напрямую к данным и идет привязка, вот и в управляемом надеялся сделать также.

Добавлено через 19 минут

Цитата
Сообщение от Dethmontt
Посмотреть сообщение

И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.

Вот тут я может и не до конца понял вашу мысль, но движения по конкретной номенклатуре хранятся в документе, форму которого я и пытаюсь открыть.



0



Модератор

Эксперт 1С

3722 / 2917 / 574

Регистрация: 10.03.2011

Сообщений: 11,489

Записей в блоге: 1

11.08.2016, 11:01

4

Gectar, форма и документ это разные сущности!

Добавлено через 2 минуты
Как появляется реквизит ОБЪЕКТ в форме документа

1. На сервере происходит чтение из БД документа (ДокументОбъект)
2. Свойства ДокументОбъект,а копируются в реквизит Объект формы
3. ДокументОбъект уничтожается

Добавлено через 49 секунд

Цитата
Сообщение от Gectar
Посмотреть сообщение

Как вариант я тоже думал так сделать, но хотелось бы как-то напрямую к данным, чтобы потом не заморачиваться с обработкой добавления/удаления/изменения записей.

Придется именно так и сохранение тоже придется делать самому



1



0 / 0 / 0

Регистрация: 10.08.2016

Сообщений: 18

11.08.2016, 11:11

 [ТС]

5

Я может сейчас и ступлю с этим вопросом, но почему же тогда все работает при ручном перетаскивании того же самого набора записей регистра из движений на форму — таблица создается, колонки добавляются, ПутьКДанным прописывается, работет все чин чинарем и не нужно никаких промежуточных реквизитов?



0



Модератор

Эксперт 1С

3722 / 2917 / 574

Регистрация: 10.03.2011

Сообщений: 11,489

Записей в блоге: 1

11.08.2016, 11:25

6

Цитата
Сообщение от Gectar
Посмотреть сообщение

работет все чин чинарем и не нужно никаких промежуточных реквизитов?

потому что платформа все делает за НАС многе оскрывая от наших глазок =)))



0



0 / 0 / 0

Регистрация: 10.08.2016

Сообщений: 18

25.08.2016, 17:38

 [ТС]

7

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

Миниатюры

Ошибка при указании ПутьКДанным в программно созданной таблице
 



0



0 / 0 / 0

Регистрация: 10.08.2016

Сообщений: 18

25.08.2016, 17:40

 [ТС]

8

Тогда приведенный в самом начале код работает без проблем.



0



Содержание:

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

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

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

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

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

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

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

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

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

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

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

[Практика программирования] Управляемые формы 1С 8: как программно изменить запрос динамического списка и программно вывести колонку добавленного реквизита списка

Ранее уже описывалось в соответствующей статье то, как разместить программно в форме колонку реквизита объекта базы (например, документа или справочника). В этой статье будет рассмотрено как программно добавить колонку с флажком в список управляемой формы с динамическим списком, данные для которого выбираются произвольным запросом.

Для программного добавления элементов управляемой формы должно быть учтено условие о том, что добавление происходит на стороне сервера, а не на клиенте (не в процедуре «ПриОткрытии», как это было в обычном приложении). И так можно ошибочно подумать по старой привычке (если есть опыт программирования в обычном интерфейсе), учитывая архитектуру платформы 1С: Предприятие 8.2 и 8.3. Ведь процедура «ПриОткрытии» формы есть и в управляемом приложении, но через не создать программно и не разместить элементы для прикладной задачи. Поэтому «&НаСервере» и преимущественно в процедуре «ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)» формы документа или элемента справочника или формы списка теперь происходит программное добавление каких-либо элементов формы.

В общем информация о том, как программно изменить текст запроса динамического списка, использующего произвольный запрос можно найти на странице сайта ИТС 1С, если у Вас есть доступ. Но если доступа нет, то можете сильно не расстраиваться — информация на странице как и во многих случаях методологической информации от 1С носит условно практический характер. А это означает, что мелочи и нюансы, о которых бы было неплохо упомянуть на указанной странице ИТС, не упомянуты никак. И их понимание будет происходить на практике. Вот часть такой практики изложена ниже на прикладной задаче.

Нажатие на изображении увеличит его
1С 8, код, управляемый интерфейс, программное изменение запроса динамического списка реквизита формы
Рис. 1. Пример теоретического кода для программного изменения текста произвольного динамического списка для управляемой формы в 1С 8. 

Прикладная задача заключалась в том, чтобы выводить программно в управляемую форму списка документов «Реализация товаров и услуг» колонку добавленного реквизита документа. Реквизит с именем «ДопМФ_Отгружено» тип «Булево», в данном примере добавлен в расширении, но может быть и добавлен в основной конфигурации, если она на частичной поддержке. Как вывести программно элемент формы, содержащей флажок, добавленного реквизита, повторимся, можно изучить в соответствующей статье, о которой уже упоминалось в начале страницы.

1С 8, как программно изменить запрос динамического списка, чтобы вывести добавленный реквизит объекта конфигурации

Рис. 2. Пример добавленного реквизита объекта конфигурации (документа) в 1С 8 для дальнейшего программного вывода колонки в управляемую форму списка объекта.

Прежде чем перейти непосредственно к программному добавлению колонки элемента таблицы формы нужно добавить его выбор в текст запроса динамического списка. Таким образом подготовительный рабочий исполняемый код получается примерно следующим:

1 | СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
2 | СвойстваСписка.ОсновнаяТаблица = «Документ.РеализацияТоваровУслуг»;
3 | СвойстваСписка.ДинамическоеСчитываниеДанных = Истина;
4 | ИсхТекстаЗапроса = СписокРеализацииТоваровУслуг.ТекстЗапроса;
5 |
|
СвойстваСписка.ТекстЗапроса = СтрЗаменить(ИсхТекстаЗапроса, «ВЫБРАТЬ», «ВЫБРАТЬ»+Символы.ПС+«РеализацияТоваровУслуг.ДопМФ_Отгружено КАК ДопМФ_Отгружено,»);
6 |
|
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокРеализацииТоваровУслуг, СвойстваСписка);
7 | //СписокРеализацииТоваровУслуг.Параметры.УстановитьЗначениеПараметра(«Параметр1», 42);

Прокомментируем его основные моменты. В строке 1 происходит получение структуры через функцию «СтруктураСвойствДинамическогоСписка()» общего модуля «ОбщегоНазначения» для заполнения ее значений и передачи для заполнения свойств динамического списка. Для ключа «ОсновнаяТаблица» структуры в строке 2 указывается название основной таблицы, которая используюется для динамического списка, в примере это «Документ.РеализацияТоваровУслуг». Значение ключа структуры в строке 3 «ДинамическоеСчитываниеДанных» в значении «Истина». В строках 4 и 5 ведется произвольная модификация запроса.

Нажатие на изображении увеличит его
1С 8, пример исходного текста произвольного запроса динамического списка, как изменить программно,
Рис. 3. Пример исходного текста произвольного запроса динамического списка реквизита управляемой формы списка документов.

Можно просто подготовить новый или измененный исходный текст запроса для указания его в ключе «ТекстЗапроса» структуры. В данном же случае была использована хитрость, чтобы минимизировать зависимость от изменений разработчиков. Происходит модификация исходного текста запроса, который определили разработчики, за счет замены подстроки «ВЫБРАТЬ», которая есть в любом запросе, на подстроку так же содержащее это обязательное слово текста запроса и текст для выборки значения добавленного реквизита документа «ДопМФ_Отгружено». Таким образом, доработка в расширении может сломаться тогда, когда разработчики существенным образом изменять исходный текст запроса. И на примере строки 5 помещаем новый вариант текста запроса в структуру. В данном примере получилось, что запрос содержит одну дополнительную строчку, чтобы выбирать значения добавленного реквизита. Порядок следования полей выборки в запросе для динамического списка не имеет значения.

Т.е. в практической задаче начало запроса программно изменялось:

С:

ВЫБРАТЬ

    РеализацияТоваровУслуг.Ссылка,

На:

ВЫБРАТЬ

    РеализацияТоваровУслуг.ДопМФ_Отгружено КАК ДопМФ_Отгружено,

    РеализацияТоваровУслуг.Ссылка,

Особенно обратим внимание на то, к каким объектам ведется обращение в строке 7, когда выполняется установка новой настройки для динамического списка с помощью процедуры «УстановитьСвойстваДинамическогоСписка» общего модуля «ОбщегоНазначения». В этом месте важно не перепутать, т.к. в типовой конфигурации названия элемента формы таблицы-списка и реквизита формы одинаковые. А важно, что первым параметром передается элемент управляемой формы — Таблица реквизита формы. Не перепутать его с названием реквизита формы, к которому ранее обращались для получения текста исходного запроса. Вторым параметром передается заполненная структура. Строка 7 в данном примере закомментирована, т.к. в данной прикладной задаче в тексте запроса не содержится параметров. Но, если параметр  есть, то устанавливается через свойство «Параметры» и метод «УстановитьЗначениеПараметра» реквизита управляемой формы, а не элемента формы. Установка значения по имени параметра по коду как для классического запроса в 1С: первое значение — текстовое имя параметра, второе значение — собственно значение для параметра.

Нажатие на изображении увеличит его
1С 8, как программно изменить текст запроса динамического списка реквизита управляемой формы
Рис. 4. Сравнение одноименных реквизита и элемента управляемой формы 1С 8 для программного изменения текста произвольного запроса динамического списка этого реквизита формы.

После модификации текста произвольного динамического запроса реквизита управляемой формы 1С 8, становится возможным размещение колонки нового реквизита. И теперь рассмотрим код для программного вывода, размещения, добавления (как будет угодно) колонки в элемент-таблицу формы. 

Нажатие на изображении увеличит его
1С 8, как программно вывести, добавить колонку из запроса динамического списка для добавленного реквизита справочника, документа
Рис. 5. Пример кода в 1С 8 для программного вывода колонки нового реквизита объекта конфигурации, в частности документа, в элемент «Таблица» управляемой формы 

По логике программного вывода в прикладной задачи новая колонка, напомним с флажком, должна выводиться сразу после колонки «Номер», содержащей данные номеров документов списка. Код на скриншоте содержит условие на то, что если колонка «Номер» по каким то причинам, например скрыта пользователем в управляемой форме, что вполне может быть (странно но может быть, ведь номер для документа является ключевым реквизитом для работы пользователей), то тогда новая колонка будет выведена самой первой в списке.

1 | ТаблицаФормы = Элементы.СписокРеализацииТоваровУслуг;
2 | КолонкаВставки = ТаблицаФормы.ПодчиненныеЭлементы.Найти(«Номер»);
3 |  
4 | КолонкаОтгружено = Элементы.Вставить(«_Отгружено», Тип(«ПолеФормы»), ТаблицаФормы, КолонкаВставки);
5 | КолонкаОтгружено.Вид = ВидПоляФормы.ПолеФлажка;
6 | КолонкаОтгружено.Заголовок = «О.»;
7 | КолонкаОтгружено.Подсказка = «Отгружено»;
8 | КолонкаОтгружено.ТолькоПросмотр = Истина;
9 | КолонкаОтгружено.ШиринаЭлемента = 5;
10 | КолонкаОтгружено.ПутьКДанным = «СписокРеализацииТоваровУслуг.ДопМФ_Отгружено»;

Есть небольшие отличия от случая, который уже упоминался выше, добавления колонки для элемента формы Таблица динамического списка, как было описано смежной статье. В смежном случае был пример для таблицы, данными (ПутьКДанным) которой выступал «динамический список», но у которого основанием выступала таблица, а не произвольный запрос. Если отличия не учесть, то будут просто возникать ошибки. В данном же примере 

Отличия заключаются в двух местах кода. Во-первых, это обращение к свойству «ШиринаЭлемента, а не просто «Ширина» как в случае, если колонка — это программно выводимая колонка динамического списка, но у которого указана «Основная таблица» и не используется произвольный запрос. Т.е. для программно добавляемой колонки динамического списка с произвольным запросом указывается свойство «ШиринаЭлемента».

Во-вторых, очень важно правильно указать значение свойства «ПутьКДанным», иначе можно получить ошибку:

Нажатие на изображении увеличит его
1С 8, ошибка, Ошибка при установке значения атрибута контекста (ПутьКДанным) по причине: Недопустимое значение
Рис. 6. Пример ошибки «Недопустимое значение» при указании неверного значения для свойства «ПутьКДанным» элемента управляемой формы .

{Документ.РеализацияТоваровУслуг.Форма.ФормаСписка.Форма(26)}: Ошибка при установке значения атрибута контекста (ПутьКДанным)

КолонкаОтгружено.ПутьКДанным = «Объект.СписокРеализацииТоваровУслуг.ДопМФ_Отгружено»; 

по причине:

Недопустимое значение

Недопустимое значение

Конечно, подобную ошибку можно «поймать» и при других условиях. Но когда она касается свойства «ПутьКДанным», то это явно говорит о том, что указанное строковое значение попросту не верное. Следует тщательно проанализировать корректность ее составления, т.к. в реквизитах управляемых форм можно запутаться.

Нажатие на изображении увеличит его
1С 8, программирование, как программно вывести, добавить элементы управляемой формы, колонку реквизита запроса динамического списка
Рис. 7. Демонстрация того, что данные элемента формы Таблица — это динамический произвольный запрос.

В текущей задаче реквизит формы (он не основной) носит имя «СписокРеализацийТоваровУслуг», а не так, как часто можно встретить в конфигурации, что основной реквизит формы носит имя «Объект». И значения для добавленной колонки берется из реквизита типа «ДинамическийСписок» и для элемента формы. Поэтому строка для «ПутьКДанным» — «СписокРеализацииТоваровУслуг.ДопМФ_Отгружено» с указанием через «.» имени нового реквизита.

Это все условия и нюансы, с которыми пришлось столкнуться на практике для программной модификации произвольного запроса динамического списка реквизита управляемой формы в 1С 8, чтобы потом программно вывести колонку нового реквизита объекта конфигурации базы в элемент «Таблица» формы .

Оцените, оказалась ли эта публикация полезна для Вас?




© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

25-11-2021

Журавлев А.С.
(Сайт azhur-c.ru)

Назад

Доброго времени суток. Помогите разобраться с ошибкой. Есть задача программно добавить реквизиты и элементы формы Проблема в том, что реквизиты — это 3 вложенные таблицы, для примера: есть таблица классы школы Таблица2, к ней привязана таблица учеников класса Таблица22, а к таблице учеников в свою очередь привязана таблица предметов с оценками учеников Таблица223. С помощью конструктора можно разместить реквизиты и соответствующие элементы на форме (таблицы формы), но при программном формировании (добавление элемента «Т223») появляется ошибка {Форма.Форма.Форма}: Ошибка при установке значения атрибута контекста (ПутьКДанным)     НовЭл.ПутьКДанным = «Элементы.Т22.ТекущиеДанные.Таблица223»; по причине: Управляемые формы, тестировал обработку в БП (3.0.40.36) на платформах 1С:Предприятие 8.3 (8.3.6.2237) и 1С:Предприятие 8.3 (8.3.6.2332) Реквизиты формы (3 вложенные таблицы) создаются без проблем, для упрощения в конфигураторе на форму обработки вручную уже добавлен реквизит Таблица2 и закоментирован рабочий код программного добавления реквизита формы вложенных таблиц. Прошу помочь разобраться: это ошибка платформы или неправильно привязываю элемент формы к реквизиту. Как привязать программно созданный элемент формы ТаблицаФормы к вложенной таблице 3-го уровня, с учетом того, что для 1-го и 2-го уровней все нормально работает. Если добавить вручную 3 таблицы на форме (можно наверно и 4 и 5 ) и вручную связать, то никаких проблем не возникает. скриншот реквизитов формы в конфигураторе Тестовая обработка находится по адресу

Кто поставил тебе такую задачу? не проще ли открывать форму списка с необходимым отбором?

К сожалению, без создания таблиц нельзя, вложенность данных может быть произвольной, дерево тоже не подходит, состав таблиц (количество и типы столбцов) на разных уровнях может отличаться. Требуется интерактивность на форме. При активизации строки таблицы на любом уровне нужно на этой же форме отображать данные связанных таблиц

Не убедил в необходимости программного создания реквизитов.   НовЭл.ПутьКДанным = «Элементы.Т22.ТекущиеДанные.Таблица223»; это путь к реквизиту формы, а не к элементу формы. Должно быить «НовЭл.ПутьКДанным = «Таблица223».

Структура реквизитов формы и, соответственно, элементов формы неизвестна заранее (структура становится известной при создании формы, это дерево где строка описывает реквизит формы или таблицу формы), приведенный пример Классы — Ученики — Оценки просто иллюстрирует проблему, это может быть и 4-уровневая таблица, и может быть одна таблица. На форме без дополнительных нажатий нужно видеть данные вложенных таблиц. «НовЭл.ПутьКДанным = «Таблица223»

а реквизит Таблица223 уже добавил?

Не, не добавил. Я код глянул в . Он закоментил добавление рекизитов.

ты просто пока не понимаешь какой геморой на свою задницу сочиняешь программно создавая структуру формы…

лучше пока не поздно переформулировать задачу

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

Тебе сказали уже. Перед созданием элеменов формы нужно сначала создавать реквизиты формы, которые и будут указываться как путь к данным элемента формы

Если не смогу решить проблему создания 3-го уровня, тогда придется полностью отказаться от программного формирования реквизитов, чего очень не хотелось бы. Но почему на втором уровне такой проблемы нет? элемент формы (ТаблицаФормы) на 2-м уровне программно создается без проблем. Для 3 уровня используется тот же принцип.

«для упрощения в конфигураторе на форму обработки вручную уже добавлен реквизит Таблица2» На форму обработки в режиме конфигуратора уже добавлена Таблица2 (Реквизит формы) со всеми вложенными таблицами в т.ч. и Таблица223 У меня не получается даже не добавить, а всего-то связать Элемент формы «Т223» с существующей таблицей «Таблица223»

Процедуру можно сократить до безобразия &НаСервере КонецПроцедуры и все равно ошибка на последней строке процедуры {Форма.Форма.Форма}: Ошибка при установке значения атрибута контекста (ПутьКДанным)     НовЭл.ПутьКДанным = «Элементы.Т22.ТекущиеДанные.Таблица223»; по причине: Недопустимое значение

ну таблица 223 где у вас тут создается?? , вы увиливаете от вопроса.

ни в коем случае не увиливаю, выше уже написал, чтобы уменьшить вероятность ошибки, чтобы предельно упростить условия задачи, реквизит Таблица223 добавил вручную. Он уже есть в реквизитах формы. Или вы считате, что я не могу программно создать элемент формы для созданного в конфигураторе реквизита формы? Также я писал, что код создания реквизитов формы до 3-го уровня (наверно и для любых уровней) срабатывает без проблем. Даже если удалить с формы все реквизиты и раскомментировать код создания реквизитов это ничего не дает, проверял, появляется та же ошибка

ну значит он добавлен не как колонка Таблицы 22.

может просто создать 3 закладки Таблица 1, Таблица 2 и Таблица 3, и при переключении в них устанавливать отбор соответствующий? Нафига вы через задний проход делаете? В колонку Таблицу вставляете?

В этом что-то есть, спасибо, я попробую, но вопрос остается актуальным. Самое главное, почему для 2-х уровней работает, а на 3-м ошибка. Еще я заметил в отладчике, что для элементов формы Т2 и Т22 есть свойство «ОтборСтрок» а у созданного элемента Т223 такого свойства нет

УПС, извините, «ОтборСтрок» появляется по установки свойства «ПутьКДанным», значит у Т223 это свойство появится после удачного связывания с Таблица223

В КОЛОНКУ ТАБЛИЦУ вставляет? О, господи…

Да лучше создавать ТЗ и СЗ и при необходимость впихивать в ТЧ, лучше думаю так будет

Программное создание элементов в 1с сделано на «отстаньте». Условное оформление формы игнорится, пути к данным не ставятся, платформенные команды не назначаются.

Написал в отдел тех. поддержки «1С» уже неделю как. Пока тишина. Наверно не дождусь от них ответа.

Почему именно программно? Очень интересно. Программно можно создать только элементы формы, но не реквизиты.

открой ГруппаКонтактнаяИнформация в БСП и посмотри как программно добавляют табличку :)

кто это сказал, что нельзя?

постановка задачи не корректная. «все говорят о мухе, а ты про слона да про слона». Однако, здравствуйте!!!)

Ну, так помоги страдальцу. И я поучусь.

можно создать и реквизиты.

Набросились )) Ну, спровоцировал маленько…Может кто и поможет ТС. Однако мне действительно не понятна причина рождения столь чудного технического задания.

В УТ11 есть примеры создания реквизитов формы в виде таблиц в общих модулях «Планирование», «Анкетирование»…

там ничего сложного, процедуру ИзменитьРеквизиты ищи.

Спасибо большое за наводку. Используя Свойство элемента формы (тип ТаблицаФормы) ОтборСтрок удалось связать таблицы 3, 4 уровней вложенности, без использования колонки таблицы тип ТаблицаЗначений Получается, что при использовании вложенности таблиц больше 2 (только программное добавление) нужно использовать свойство ТаблицаФормы — ОтборСтрок. Программно, используя свойство ТаблицаФормы — ПутьКДанным невозможно связать таблицы 3-го и более уровней вложенности

Тэги: 1С 8

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

Войти или зарегистрироваться

8.х ошибка задания .ПутьКДанным

Тема в разделе «Общие вопросы «1С:Предприятие 8″», создана пользователем Sunbear, 8 апр 2011.




0/5,
Голосов: 0
  1. TopicStarter Overlay

    Sunbear

    Offline

    Sunbear
    Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26

    почему при попытке задать ЭлементФормы.ПутьКДанным = «Таблица.Дата» выскакивает ошибка при установке значения атрибута контекста (ПутьКДанным)?


    Sunbear,
    8 апр 2011
    #1

  2. Hr0n

    Offline

    Hr0n
    Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    348
    Симпатии:
    0
    Баллы:
    26

    Может все-таки ЭлементыФормы?


    Hr0n,
    8 апр 2011
    #2
  3. TopicStarter Overlay

    Sunbear

    Offline

    Sunbear
    Опытный в 1С

    Регистрация:
    11 фев 2010
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26

    нет это параметр процедуры — Элемент формы из состава динамического поля формы, для которого устанавливаются свойства.


    Sunbear,
    8 апр 2011
    #3
(Вы должны войти или зарегистрироваться, чтобы ответить.)
Показать игнорируемое содержимое
Похожие темы

  1. alexx2510

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

    alexx2510,
    15 сен 2009
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    1
    Просмотров:
    2.533
    alexx2510
    15 сен 2009

  2. Ludmillka

    8.х
    При выполнении регламентного задания ошибка COM соединения: Неопознанная ошибка

    Ludmillka,
    13 сен 2013
    , в разделе: Общие вопросы «1С:Предприятие 8»
    Ответов:
    29
    Просмотров:
    5.467
    Draco
    16 сен 2013

  3. Silent_Rain

    [РЕШЕНО]
    Ошибка при выполнении регламентного задания

    Silent_Rain,
    9 мар 2015
    , в разделе: «1С:Управление небольшой фирмой УНФ»
    Ответов:
    9
    Просмотров:
    2.463
    Silent_Rain
    11 мар 2015

  4. 1с-ник

    8.х
    Ошибка выполнения регламентного задания

    1с-ник,
    28 июн 2017
    , в разделе: Конфигурирование на платформе «1С:Предприятие 8»
    Ответов:
    0
    Просмотров:
    486
    1с-ник
    28 июн 2017

Загрузка…
Ваше имя или e-mail:
У Вас уже есть учётная запись?
  • Нет, зарегистрироваться сейчас.
  • Да, мой пароль:
  • Забыли пароль?

Запомнить меня


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

Поиск

  • Искать только в заголовках
Сообщения пользователя:

Имена участников (разделяйте запятой).

Новее чем:
  • Искать только в этой теме
  • Искать только в этом разделе
    • Отображать результаты в виде тем

Быстрый поиск

  • Последние сообщения

Больше…

Понравилась статья? Поделить с друзьями:
  • Ошибка при установке значения атрибута контекста приоритет
  • Ошибка при установке значения атрибута контекста пользовательос
  • Ошибка при установке значения атрибута контекста отправитель
  • Ошибка при установке значения атрибута контекста объект
  • Ошибка при установке драйвера hasp компас