gaur777
28.09.17
✎
17:00
Подскажите пожалуйста. Перевожу базу с обычной на управляемую форму. в одной из обработок, на обычной форме при нажатие кнопки данные брались с табличной части таким образом:
ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;
Теперь на управляемой выводит ошибку:
( Ошибка при получении значения атрибута контекста (ТекущиеДанные)
ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;
по причине:
Текущие данные таблицы недоступны на сервере )
ВходящиеПартии — табличная часть
Вроде не сложно. Но как исправить не пойму
gaur777
28.09.17
✎
17:01
На клиенте выполняю, пишет: … поле не является объектным типом
mxs089
28.09.17
✎
17:02
получить по идентификатору
vicof
28.09.17
✎
17:03
ВходящиеПартии не только имя табличной часть, но и имя элемента формы. Одна доступна на сервере, второй на клиенте.
vicof
28.09.17
✎
17:03
части*
ribuh
28.09.17
✎
17:07
Интересно, а всё же что быстрее, в конфигураторе поставить точку останова на проблемной строке и посмотреть в режиме отладки, что там есть и что можно использовать, или создать тута темку и узнать много нового, чаще всего не о вопросе, а о себе (неичего личного, просто интересно))))))
gaur777
28.09.17
✎
17:08
(3) ну так и как быть?
выполняю вот на сервере
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;
Enterprise = ТекущиеДанные.Площадка;
Ошибка! Площадка одно из полей
vicof
28.09.17
✎
17:11
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;
выполняй на клиенте
dezss
28.09.17
✎
17:11
(6) у тч нет тек. данных…передавай их с клиента.
gaur777
28.09.17
✎
17:14
(7) (8) — (1) прочитайте
gaur777
28.09.17
✎
17:15
хотя задаю переменную
Перем ТекущиеДанные;
dezss
28.09.17
✎
17:15
(9) что показывает отладка???
dezss
28.09.17
✎
17:15
и вообще, строка какая-нибудь выделена?
vicof
28.09.17
✎
17:16
«…поле не является объектным типом»
какое?
dezss
28.09.17
✎
17:17
(12) т.к. при невыделенном ТекущиеДанные = Неопределено
gaur777
28.09.17
✎
17:18
(11) как я могу проверить отладчиком если этой строке выходит ошибка?
gaur777
28.09.17
✎
17:19
(12) (14) стоит условие
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
gaur777
28.09.17
✎
17:20
(13) ну естественно первое которое выбирается в коде.
я же объясняю в обычном приложение всё работало
ribuh
28.09.17
✎
17:23
(15) дык на этой строке точку останова поставить, и смотреть, что там………
gaur777
28.09.17
✎
17:27
(18) текущиеданные — не является полем объектного типа
ribuh
28.09.17
✎
17:30
(19) До текущих данных смотрим, что там есть
в Элементах смотрим что есть
в Объекте смотрим, что есть
ищем, где собака порылась, тьфу, блин, где есть то, что нам нужно…у Вас шансов намного больше, чем у советчиков тут — потому как всё перед глазами — нужно только найти, что хочется)))))
YAGolova
28.09.17
✎
17:31
(19) Во общем, вам надо изменить в своей голове парадигму программирования. То что было разрешено в толстом клиенте на обычных формах — ниразу не разрешено в тонком. текущие данные у табличной части доступны только на клиенте
dezss
29.09.17
✎
09:12
(15) блин, ну ты же прямо ПЕРЕД выполнением этой строки можешь посмотреть на значения всех используемых в ней сущностей!!!
gaur777
29.09.17
✎
11:06
Просто объясните. Как в управляемой форме получить значение по выбранной строке
vicof
29.09.17
✎
11:09
Значение чего?
oslokot
29.09.17
✎
11:18
(0) Все должно работать, попробуй переименовать табличное поле, скорей всего проблема в (3)
ТекущиеДанные = Элементы.ТабличноеПоле1.ТекущиеДанные;
(на клиенте)
gaur777
29.09.17
✎
11:40
(25) дело в том, что текущиеданные отладчик показывает нормально. тоесть все поля табличной части там есть.
но дело такое, что поля которые я заполняю отрабатываются на сервере:
Функция ПодготовитьОбъект_ConsignorXDTO(ФабрикаВЕТИС,ПараметрыЗапроса)
Consignor = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «BusinessMember»);
Enterprise = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «Enterprise»);
BusinessEntity = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «BusinessEntity»);
Enterprise.uuid = ТекущиеДанные.UUIDПлощадкиОтправителя;
BusinessEntity.uuid = ТекущиеДанные.UUIDХСОтправителя;
Consignor.enterprise = Enterprise;
Consignor.businessEntity = BusinessEntity;
Возврат Consignor;
КонецФункции
gaur777
29.09.17
✎
11:40
поэтому значение текущиеданные не находит
oslokot
29.09.17
✎
12:47
ну значит на сервере получай нужную строку Объект.ВходящиеПартии[НомерТекСтроки] и обрабатывай
gaur777
29.09.17
✎
14:05
(28) мне нужно не по номеру строки
а по выбранной строки
famnam
29.09.17
✎
14:09
%НаКлиенте
ТекДанные = Элементы.ТЧ.ТекущиеДанные;
ОбработатьНаСервере(ТекДанные.ПолучитьИдентификатор());
&НаСервере
Процедура ОбработатьНаСервере(Идентификатор)
ТекДанные = Объект.ТЧ.НайтиПоИдентификатору(Идентификатор);
ТекДанные.Площадка = …;
Конецпроцедуры
Текущие данные таблицы недоступны на сервере
Автор kaidj, 22 ноя 2015, 12:59
0 Пользователей и 1 гость просматривают эту тему.
Доброго времени суток уважаемые гуру!!! Такая проблема:
Имеется табличная часть «Товары» Формы Документа «Продажа»
Её реквизиты:
— Номенклатура (СправочникСсылка.Номенклатура)
— Упаковка (СправочникСсылка.Упаковка)
— Количество (Число)
— ЦенаУпаковки (Число)
— Цена (Число)
Имеется справочник Упаковка
Имеется справочник Номенклатура с табличной частью «ЦенаЗаУпаковку»
реквизиты ТЧ:
— Упаковка (СправочникСсылка.Упаковка)
— Цена (Число)
Нужно при заполнении «Номенклатура», «Упаковка», «Количество» что бы автоматически заполнялись реквизиты:
— «ЦенаУпаковки» (из Справочник.Упаковка ТЧ ЦенаЗаУпаковку реквизит «Цена»)
— «Цена» (умножить автоматически заполненый реквизит «ЦенаУпаковки» на заполненый реквизит «Количество»)
в общем я под эту задачу наваял такой «код»
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока.ЦенаУпаковки = НайтиНоменклатуру(ТекущаяСтрока.Номенклатура);
ТекущаяСтрока.Цена = ТекущаяСтрока.ЦенаУпаковки * ТекущаяСтрока.Количество;
// Вставить содержимое обработчика.
КонецПроцедуры
Функция НайтиНоменклатуру(Номенклатура)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные.Упаковка;
Запрос = новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.(
| Цена
| )
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура
|И Номенклатура.ЦенаЗаУпаковку.Ссылка = &ТекущаяСтрока»;
Запрос.УстановитьПараметр(«Номенклатура», Номенклатура);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Объем;
КонецЕсли;
Возврат 0; // или 1
КонецФункции
в итоге выдает ошибку:
{Документ.Продажа.Форма.ФормаДокумента.Форма(43)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные) ТекущаяСтрока = Элементы.Товары.ТекущиеДанные.Упаковка;по причине:Текущие данные таблицы недоступны на сервереТекущие данные таблицы недоступны на сервере
1) перед функцией поставить директиву компиляции &наСервереБезКонтекста.
2) первую строчку из функции убрать, номенклатура в параметрах передается.
3) что за «Объем» в выборке? вроде в запросе такого нет.
4) исправить то что выше и сказать на что ругается дальше =)
о. тока хотел начертать…
Добавлено: 22 ноя 2015, 21:12
Но самое интересное это передача файлов туда сюда!
Помог? Нажми — Спасибо
skype: Soprov1C
ваще жесть!
1. для поиска цены упаковки надо в функцию отправить не только номенклатуру, но и упаковку. а не получать ее (упаковку) внутри функции!
2. WTF???
Цитата: kaidj от 22 ноя 2015, 12:59Запрос.Текст = «ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.(
| Цена
| )
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура
|И Номенклатура.ЦенаЗаУпаковку.Ссылка = &ТекущаяСтрока»;
Запрос.УстановитьПараметр(«Номенклатура», Номенклатура);
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
А что в запросе можно функцию сразу писать?)))
Типа ПолучитьДанные(Док.Код) как Данные
» Номенклатура.ЦенаЗаУпаковку.(
| Цена
| )» Что это?))
Цитата: Sinsinmin от 23 ноя 2015, 08:40
А что в запросе можно функцию сразу писать?)))Типа ПолучитьДанные(Док.Код) как Данные
» Номенклатура.ЦенаЗаУпаковку.(
| Цена
| )» Что это?))
скобки появились в конструкторе запроса (цена — это реквизит табличной части справочника)
Добавлено: 23 ноя 2015, 10:13
ну в общем как то так:
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Упаковка=Элементы.Товары.ТекущиеДанные.Упаковка;
ТекущаяСтрока.ЦенаУпаковки = НайтиНоменклатуру(ТекущаяСтрока.Номенклатура,Упаковка);
ТекущаяСтрока.Цена = ТекущаяСтрока.ЦенаУпаковки * ТекущаяСтрока.Количество;
// Вставить содержимое обработчика.
КонецПроцедуры
Функция НайтиНоменклатуру(Номенклатура,ТекущаяСтрока)
//ТекущаяСтрока = Элементы.Товары.ТекущиеДанные.Упаковка;
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.(
| Цена
| )
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура
|И Номенклатура.ЦенаЗаУпаковку.Ссылка = &ТекущаяСтрока";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("ТекущаяСтрока", ТекущаяСтрока);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ЦенаЗаУпаковку.Цена;
КонецЕсли;
Возврат 0; // или 1
КонецФункции
ошибки в этом случае не выдает, но и не заполняет элемент строки «ЦенаУпаковки»
Добавлено: 23 ноя 2015, 11:04
ИТОГ вот такой:
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Упаковка=Элементы.Товары.ТекущиеДанные.Упаковка;
ТекущаяСтрока.ЦенаУпаковки = НайтиНоменклатуру(ТекущаяСтрока.Номенклатура,Упаковка);
ТекущаяСтрока.Цена = ТекущаяСтрока.ЦенаУпаковки * ТекущаяСтрока.Количество;
// Вставить содержимое обработчика.
КонецПроцедуры
Функция НайтиНоменклатуру(Номенклатура,Упаковка)
//ТекущаяСтрока = Элементы.Товары.ТекущиеДанные.Упаковка;
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.Цена
|
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура
|И Номенклатура.ЦенаЗаУпаковку.Упаковка.Ссылка = &Упаковка";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Упаковка", Упаковка);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.Цена;
КонецЕсли;
Возврат 0; // или 1
КонецФункции
ОШИБКА: {Документ.Продажа.Форма.ФормаДокумента.Форма(59)}: Поле объекта не обнаружено (Цена)
Возврат Выборка.Цена;
«ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.Цена КАК Цена
Цитата: vitasw от 23 ноя 2015, 11:14
«ВЫБРАТЬ
| Номенклатура.ЦенаЗаУпаковку.Цена КАК Цена
{Документ.Продажа.Форма.ФормаДокумента.Форма(15)}: Ошибка при вызове метода контекста (НайтиНоменклатуру)
ТекущаяСтрока.ЦенаУпаковки = НайтиНоменклатуру(ТекущаяСтрока.Номенклатура,Упаковка);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘ret’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘РезультатЗапроса’
ЛЮДИ!!! Опомнитесь!!!
kaidj, думайте, о том ЧТО вы делаете и ДЛЯ ЧЕГО!!!
програмировать — это не просто наваял запрос и гуляй Вася!
вот же…
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
СтрокаТЧ.ЦенаУпаковки = ПолучитьЦенуУпаковки(СтрокаТЧ.Номенклатура, СтрокаТЧ.Упаковка); //научитесь сразу давать методам логичные названия!
СтрокаТЧ.Цена = СтрокаТЧ.ЦенаУпаковки * СтрокаТЧ.Количество;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЦенуУпаковки(Номенклатура, Упаковка)
Запрос = новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| НоменклатураЦенаЗаУпаковку.Цена КАК Цена
|ИЗ
| Справочник.Номенклатура.ЦенаЗаУпаковку КАК НоменклатураЦенаЗаУпаковку //в качестве основной таблицы сразу берем ТЧ ЦенаЗаУпаковку!
|ГДЕ
| НоменклатураЦенаЗаУпаковку.Ссылка = &Номенклатура
| И НоменклатураЦенаЗаУпаковку.Упаковка = &Упаковка";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Упаковка", Упаковка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Цена;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
как-то так. не проверял.
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Очень замечательно, что вы научились копипастить ошибки. А попробовать самому подумать/разобраться?
Результатом выполнения этого запроса = вложенный запрос, что естественно вызывает ошибку? Какую из ста тыщ пятьсот строк в таблице цен номенклатуры вы хотите получить?
Текущие данные (управляемая форма) |
Я |
gaur777
28.09.17 — 17:00
Подскажите пожалуйста. Перевожу базу с обычной на управляемую форму. в одной из обработок, на обычной форме при нажатие кнопки данные брались с табличной части таким образом:
ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;
Теперь на управляемой выводит ошибку:
( Ошибка при получении значения атрибута контекста (ТекущиеДанные)
ТекущиеДанные = Элементы.ВходящиеПартии.ТекущиеДанные;
по причине:
Текущие данные таблицы недоступны на сервере )
ВходящиеПартии — табличная часть
Вроде не сложно. Но как исправить не пойму
gaur777
1 — 28.09.17 — 17:01
На клиенте выполняю, пишет: … поле не является объектным типом
mxs089
2 — 28.09.17 — 17:02
получить по идентификатору
vicof
3 — 28.09.17 — 17:03
ВходящиеПартии не только имя табличной часть, но и имя элемента формы. Одна доступна на сервере, второй на клиенте.
vicof
4 — 28.09.17 — 17:03
части*
ribuh
5 — 28.09.17 — 17:07
Интересно, а всё же что быстрее, в конфигураторе поставить точку останова на проблемной строке и посмотреть в режиме отладки, что там есть и что можно использовать, или создать тута темку и узнать много нового, чаще всего не о вопросе, а о себе (неичего личного, просто интересно))))))
gaur777
6 — 28.09.17 — 17:08
(3) ну так и как быть?
выполняю вот на сервере
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;
Enterprise = ТекущиеДанные.Площадка;
Ошибка! Площадка одно из полей
vicof
7 — 28.09.17 — 17:11
ТекущиеДанные = Объект.ВходящиеПартии.ТекущиеДанные;
выполняй на клиенте
dezss
8 — 28.09.17 — 17:11
(6) у тч нет тек. данных…передавай их с клиента.
gaur777
9 — 28.09.17 — 17:14
(7) (8) — (1) прочитайте
gaur777
10 — 28.09.17 — 17:15
хотя задаю переменную
Перем ТекущиеДанные;
dezss
11 — 28.09.17 — 17:15
(9) что показывает отладка???
dezss
12 — 28.09.17 — 17:15
и вообще, строка какая-нибудь выделена?
vicof
13 — 28.09.17 — 17:16
«…поле не является объектным типом»
какое?
dezss
14 — 28.09.17 — 17:17
(12) т.к. при невыделенном ТекущиеДанные = Неопределено
gaur777
15 — 28.09.17 — 17:18
(11) как я могу проверить отладчиком если этой строке выходит ошибка?
gaur777
16 — 28.09.17 — 17:19
(12) (14) стоит условие
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
gaur777
17 — 28.09.17 — 17:20
(13) ну естественно первое которое выбирается в коде.
я же объясняю в обычном приложение всё работало
ribuh
18 — 28.09.17 — 17:23
(15) дык на этой строке точку останова поставить, и смотреть, что там………
gaur777
19 — 28.09.17 — 17:27
(18) текущиеданные — не является полем объектного типа
ribuh
20 — 28.09.17 — 17:30
(19) До текущих данных смотрим, что там есть
в Элементах смотрим что есть
в Объекте смотрим, что есть
ищем, где собака порылась, тьфу, блин, где есть то, что нам нужно…у Вас шансов намного больше, чем у советчиков тут — потому как всё перед глазами — нужно только найти, что хочется)))))
YAGolova
21 — 28.09.17 — 17:31
(19) Во общем, вам надо изменить в своей голове парадигму программирования. То что было разрешено в толстом клиенте на обычных формах — ниразу не разрешено в тонком. текущие данные у табличной части доступны только на клиенте
dezss
22 — 29.09.17 — 09:12
(15) блин, ну ты же прямо ПЕРЕД выполнением этой строки можешь посмотреть на значения всех используемых в ней сущностей!!!
gaur777
23 — 29.09.17 — 11:06
Просто объясните. Как в управляемой форме получить значение по выбранной строке
vicof
24 — 29.09.17 — 11:09
Значение чего?
oslokot
25 — 29.09.17 — 11:18
(0) Все должно работать, попробуй переименовать табличное поле, скорей всего проблема в (3)
ТекущиеДанные = Элементы.ТабличноеПоле1.ТекущиеДанные;
(на клиенте)
gaur777
26 — 29.09.17 — 11:40
(25) дело в том, что текущиеданные отладчик показывает нормально. тоесть все поля табличной части там есть.
но дело такое, что поля которые я заполняю отрабатываются на сервере:
Функция ПодготовитьОбъект_ConsignorXDTO(ФабрикаВЕТИС,ПараметрыЗапроса)
Consignor = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «BusinessMember»);
Enterprise = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «Enterprise»);
BusinessEntity = ФабрикаВЕТИС.Создать(«http://api.vetrf.ru/schema/cdm/cerberus/enterprise»;, «BusinessEntity»);
Enterprise.uuid = ТекущиеДанные.UUIDПлощадкиОтправителя;
BusinessEntity.uuid = ТекущиеДанные.UUIDХСОтправителя;
Consignor.enterprise = Enterprise;
Consignor.businessEntity = BusinessEntity;
Возврат Consignor;
КонецФункции
gaur777
27 — 29.09.17 — 11:40
поэтому значение текущиеданные не находит
oslokot
28 — 29.09.17 — 12:47
ну значит на сервере получай нужную строку Объект.ВходящиеПартии[НомерТекСтроки] и обрабатывай
gaur777
29 — 29.09.17 — 14:05
(28) мне нужно не по номеру строки
а по выбранной строки
famnam
30 — 29.09.17 — 14:09
%НаКлиенте
ТекДанные = Элементы.ТЧ.ТекущиеДанные;
ОбработатьНаСервере(ТекДанные.ПолучитьИдентификатор());
&НаСервере
Процедура ОбработатьНаСервере(Идентификатор)
ТекДанные = Объект.ТЧ.НайтиПоИдентификатору(Идентификатор);
ТекДанные.Площадка = …;
Конецпроцедуры
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Доброго времени суток уважаемый!
Прошу помочь определится с правильным решением задачи по расходу штукатурки. Это самый сложный расчет и по его примеру, я без проблем, смогу реализовать расчет других материалов, которые считаются исходя из площади поверхности… Проблема заключается вот в чем…
В случае со штукатуркой, у одного и того же элемента справочника, допустим Rotband (30кг)
меняется расход в зависимости от способа нанесения.
То есть существует 3 способа штукатурки, под плинтус, под правило и под маяк, в порядке увеличения.
Допустим расходы равны 6, 8,5 и 12кг на квадратный метр соответственно.
Напомню, что в предыдущих обсуждениях Вы помогли мне рассчитать и переносить в таблицу «работы со стенами» значения для определенных помещений при их добавлении… То есть теперь, моя задача, организовать расчет материала при различных видах работ. Поэтому я создаю таблицу следующего содержания..
Помещение — ссылка на справочник «Помещения» где хранятся названия «помещений»
Вид работы — ссылка на справочник «ВидыРаботСтены» где хранятся наименования возможных видов работ. Сделал справочник, что бы можно было дополнять в режиме Предприятие, если стоит сделать перечисление, и заранее указать все виды работ, прошу сообщить об этом..
Материал — ссылка на справочник «Номенклатура» где по умолчанию должен подставлятся определенный материал, в зависимости от выбраного вида работ. Тут стоит отметить, что доступный материал для выбора должен быть только подходящий, то есть только штукатурка.. Вы уже советовали мне хранить эти значения в константе, однако как это использовать я не понимаю.. Поверьте, очень неудобно просить разжевать этот, видимо элементарный момент..
РабочаяПлощадь — Число, которое уже благодаря Вам, подставляется из соседней таблицы и доступно для редактирования, на случай комбинированых поверхностей (Допустим на 20и метровой кухне 12 ламинат и 8 плитка).
Расход — Число, которое я планировал брать из реквизита элемента справочника. Допустим для обойного клея это 0,8кг на кв.м, а длчя краски 1,5кг на кв.м, эти значения, я планировал заносить в справочник номенклатура и подставлять их в эту таблицу… Но вот тут то и встал вопрос о том, как быть со штукотуркой… Варианты, которые я смог подумать.. Это создание в справочнике 3х реквизитов, но востребованы они будут только в случае со штукатуркой, что хоть отджельный справочник для штукатурки создавай… Создал именно 3 разных ВидаРаботы ШтукатуркаПлинтус, ШтукатуркаПравило, ШтукатуркаМаяк. И подумал, что самое логичное, внедрить в расчет коэфициенты в духе 0,8, 1, 1,2… Но опять же возможно для других видов штукатурки, данный коэфициент будет не корректен. И как быть в этом случае, я совсем запутался в мыслях и не представляю. Самое логичное получается, на самом деле, создать отдельный справочник с 3мя необходимыми реквизитами?
Количество основного материала — число, которое будет получатся в результате умножения «рабочей площади в строке, на расход.
Стоимость работ — число, которое по плану будет братся из справочника и получатся в результате умножения на «рабочуюПлощадь» в зависимости от выбраного ВидаРаботы
Следующим шагом в разработке данного документа, планирую создать аналогичную таблицу для работ с полом. И после этого создать итоговую таблицу, которая должна будет суммировать материалы из обоих таблиц и выдать список необходимых материалов.. Но это уже другой вопрос… На данный момент я встал мертвой точкой на вышеописаной проблеме и что делать даже теоритически не знаю…
Прошу поправить, если где то моя логика и выдуманый механизм, по Вашему мнению не правильны и помочь в реализации этого механизма на примере штукатурки, дальнейшие материалы я думаю без проблем смогу посчитать на этом примере!
Заранее благодарю вас Уважаемый СенСей! МирТрудМай! С наступающим праздником победы! Всех благ Вам и Вашим близким!
PS Не знал как более корректно назвать тему данного обсуждения..
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса) В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
Пожалуйста |
Подсказка: Для выделения Кода используйте (в редакторе). |
Ошибка в 1С 8. Ошибка при получении значения атрибута контекста (ОсновнаяРоль), Недопустимо использование свойства ОсновнаяРоль
Описание ошибки:
Проблема стала возникать после того, как в серверную базу УТ 10.3 был добавлен функционал Библиотеки МДЛП. Ошибка не проявляла себя явно при работе в режиме 1С: Предприятие, но негативно влияла на выполнение некоторых регламентных заданий, так что они аварийно прерывались.
Найденные решения:
{ОбщийМодуль.Пользователи.Модуль(116)}: Ошибка при получении значения атрибута контекста (ОсновнаяРоль)
по причине:
Недопустимо использование свойства «ОсновнаяРоль»
Проблема стала заметна случайно лишь тогда, когда в частности регламентное фоновое задание «Наличие новых ЭД» стало прерываться в процессе своего выполнения из за ошибки.
Рис. 1. Пример ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» в регламентном задании «Наличие новых эд в сервисе ЭДО«
Так же и в другом регламентном задании стала проявляться ошибка «Ошибка при получении значения атрибута контекста (ОсновнаяРоль) по причине: Недопустимо использование свойства «ОсновнаяРоль».
Рис. 2. Пример ошибки «Недопустимо использование свойства «ОсновнаяРоль» в регламентном задании «Выполнение обмена по сценарию…»
Удивителен тот факт, что код «Метаданные.ОсновнаяРоль» вполне нормальный. Т.е. конструкция вызывается в конфигураторе при конфигурировании как свойство объекта «Метаданные». Так же не возникает ошибок при проверка кода при сохранении изменений конфигурации.
Нажатие на изображении увеличит его
Рис. 3. Причина ошибки в коде, конструкция «Метаданные.ОсновнаяРоль = Неопределено».
Релиз используемой платформы 1С в базе, в которой возникла проблема — 8.3.18.1741
Рис. 4. Сведения о конфигурации, версии платформы и параметры конфигурации.
Удивительно, что описание данного свойства «ОсновнаяРоль» отсутствует в Синтакс-помощнике. Хотя, как уже было коротко упомянуто, свойство «ОсновнаяРоль» глобального свойства «Метеданные» используется в библиотеке МДЛП. Исходно основное назначение библиотеки — для конфигураций, работающих в режиме управляемого приложения. Конфигурация 1С: Управление торговлей 10.3 работает в другом режиме — обычного приложения. Поэтому получается, что конструкция кода эксплуатируется в редко используемой библиотеке и ее работоспособность не совсем понятна в текущем релизе платформы.
В сети оказалось достаточно мало вспомогательной информации об этой ошибке. Из найденного, что может кому-то помочь — это обсуждение на форуме forum.1c.ru «После обновления на 2.0.15.8 выпадает ошибка: Недопустимо использование свойства «ОсновнаяРоль».
Поэтому возможно, но это только неподтвержденное предположение, что метод работает только в конфигурациях, работающих в режиме управляемого приложения, т.к. о нем отсутствует какая-либо информация в официальной методике — «Синтакс-помощнике». Поскольку упоминание проблемы с «ОсновнаяРоль» и ее актуальное решение по приведенной выше ссылке действует для конфигурации 1С: Деньги, которая работает исключительно в режиме обычного приложения (интерфейса).
Рис. 5. Отсутствие в «Синтакс-помощнике» описания метода «ОсновнаяРоль»
Поэтому решением данной проблемы стало изменение кода на конструкцию: Метаданные.ОсновныеРоли.Количество()
Нажатие на изображении увеличит его
Рис. 6. Устранение ошибки «Ошибка при получении значения атрибута контекста (ОсновнаяРоль)» заменой текста кода.
Таким образом код стал актуальным для исполнения и в дальнейшем не вызывал ошибку.
Оцените, помогло ли Вам предоставленное описание решения ошибки?
© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
21-07-2022
Журавлев А.С.
(Сайт azhur-c.ru)
Konstantan 1 / 1 / 1 Регистрация: 11.05.2015 Сообщений: 74 |
||||
1 |
||||
Ошибка при получении атрибута значения контекста (Номенклатура)11.10.2018, 12:33. Показов 5662. Ответов 3 Метки нет (Все метки)
Сначала выполняется удалет строки из первого документа потом на втором документе вылетает ошибка,что это значит помогите плиииз ничего не пойму
__________________ 0 |
Тест 383 / 162 / 56 Регистрация: 26.02.2010 Сообщений: 1,241 |
|
11.10.2018, 12:44 |
2 |
В каком месте то ошибка происходит? 0 |
856 / 655 / 111 Регистрация: 01.11.2012 Сообщений: 2,410 |
|
11.10.2018, 13:36 |
3 |
Полный текст ошибки выложите 0 |
841 / 604 / 211 Регистрация: 24.07.2013 Сообщений: 2,101 |
|
11.10.2018, 20:10 |
4 |
Сообщение было отмечено GreenkA как решение РешениеKonstantan, МассивТоваров не очищается перед обработкой следующего документа. 2 |
Не работает с 1с 8.2 Бухгалтерия
Модераторы: Дмитрий Юхтимовский, Лысиков Денис
Не работает с 1с 8.2 Бухгалтерия
Не работает с 1с 8.2 Бухгалтерия Версия 3.0, а 2.0 работает. После объедения выдает ошибку {ОбщийМодуль.ПользователиКлиентСервер.Модуль(22)}: Ошибка при получении значения атрибута контекста (ТекущийПользователь)
Возврат ?(ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь),
по причине:
Попытка получения неинициализированного значения параметров
- tanksod
- Сообщений: 9
- Зарегистрирован: 24 фев 2014, 12:38
Re: Не работает с 1с 8.2 Бухгалтерия
Лысиков Денис » 27 фев 2014, 13:16
Здравствуйте! Проверьте каким образом Вы объединили модуль сеанса. Не удалили ли Вы оттуда типовые процедуры по инициализации параметров сеансов.
- Лысиков Денис
- Сообщений: 86
- Зарегистрирован: 11 фев 2013, 21:46
Re: Не работает с 1с 8.2 Бухгалтерия
tanksod » 27 фев 2014, 14:42
теперь вышла ошибка.
МодульСеанса(11,7)}: Переменная не определена (ТребуемыеПараметры)
Если <<?>>ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда (Проверка: Сервер)
{МодульСеанса(11,45)}: Переменная не определена (ТребуемыеПараметры)
Если ТребуемыеПараметры = Неопределено ИЛИ <<?>>ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда (Проверка: Сервер)
сам модуль сеанса
// СтандартныеПодсистемы
СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);
// Конец СтандартныеПодсистемы
// АПДЕКС
Если ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда
ХранилищеЗначения = Новый ХранилищеЗначения(Новый Соответствие);
ПараметрыСеанса.APDEX_ТекущийЗамерВремени = ХранилищеЗначения;
APDEX_Настройки = APDEX_ОценкаПроизводительностиСерверВызовСервера.ПолучитьНастройки();
APDEX_НастройкиЗамеров = Новый Структура;
APDEX_НастройкиЗамеров.Вставить(«APDEX_ОтключитьЗамер»,APDEX_Настройки.APDEX_ОтключитьЗамер);
APDEX_НастройкиЗамеров.Вставить(«APDEX_МинимальноеВремяЗамера»,APDEX_Настройки.APDEX_МинимальноеВремяЗамера);
APDEX_НастройкиЗамеров.Вставить(«APDEX_ИдентификаторБазыAPDEX»,APDEX_Настройки.APDEX_ИдентификаторБазыAPDEX);
APDEX_НастройкиЗамеров.Вставить(«APDEX_СпособЗаписиЗамеров»,APDEX_Настройки.APDEX_СпособЗаписиЗамеров);
ПараметрыСеанса.APDEX_НастройкиЗамеров = Новый ФиксированнаяСтруктура(APDEX_НастройкиЗамеров);
КонецЕсли;
- tanksod
- Сообщений: 9
- Зарегистрирован: 24 фев 2014, 12:38
Re: Не работает с 1с 8.2 Бухгалтерия
Лысиков Денис » 28 фев 2014, 09:11
Если в типовой процедуре модуля сеансов не используется переменная ТребуемыеПараметры. тогда вообще удалите условие «Если ТребуемыеПараметры = Неопределено ИЛИ ТребуемыеПараметры.Найти(«APDEX_НастройкиЗамеров»)<>Неопределено Тогда» оставьте только следующий код:
ХранилищеЗначения = Новый ХранилищеЗначения(Новый Соответствие);
ПараметрыСеанса.APDEX_ТекущийЗамерВремени = ХранилищеЗначения;
APDEX_Настройки = APDEX_ОценкаПроизводительностиСерверВызовСервера.ПолучитьНастройки();
APDEX_НастройкиЗамеров = Новый Структура;
APDEX_НастройкиЗамеров.Вставить(«APDEX_ОтключитьЗамер»,APDEX_Настройки.APDEX_ОтключитьЗамер);
APDEX_НастройкиЗамеров.Вставить(«APDEX_МинимальноеВремяЗамера»,APDEX_Настройки.APDEX_МинимальноеВремяЗамера);
APDEX_НастройкиЗамеров.Вставить(«APDEX_ИдентификаторБазыAPDEX»,APDEX_Настройки.APDEX_ИдентификаторБазыAPDEX);
APDEX_НастройкиЗамеров.Вставить(«APDEX_СпособЗаписиЗамеров»,APDEX_Настройки.APDEX_СпособЗаписиЗамеров);
ПараметрыСеанса.APDEX_НастройкиЗамеров = Новый ФиксированнаяСтруктура(APDEX_НастройкиЗамеров);
- Лысиков Денис
- Сообщений: 86
- Зарегистрирован: 11 фев 2013, 21:46
Re: Не работает с 1с 8.2 Бухгалтерия
tanksod » 03 мар 2014, 09:46
спасибо большое. помагло
- tanksod
- Сообщений: 9
- Зарегистрирован: 24 фев 2014, 12:38
Вернуться в APDEX — статистика длительности операций
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
||||
1 |
||||
Создать документ с данными выбранной строки ТЧ формы31.10.2017, 11:39. Показов 7032. Ответов 12 Метки нет (Все метки)
Здравствуйте. В собственной конфигурации есть документ «ОбъектныйГрафик» с ТЧ «Задания». Необходимо сделать следующее: пользователь, поставив курсор на строку ТЧ с нужным заданием должен нажать кнопку исформировать документ «ЛистокОВыдачеЗадания», реквизиты которого должны заполниться значениями реквизитов выбранной строки ТЧ. Я делал так:
в результате документ формируется, но заполняется данными первой строки ТЧ документа «Объектьныйграфик». Как сделать так, чтобы документ заполнялся реквизитами выбранной строки? помогите пожалуйста.
0 |
polax 1965 / 1350 / 480 Регистрация: 16.01.2015 Сообщений: 5,853 |
||||
31.10.2017, 12:10 |
2 |
|||
0 |
4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
|
31.10.2017, 12:14 [ТС] |
3 |
это на клиенте. а на сервер как передать эти данные для записи в новый документ?
0 |
polax 1965 / 1350 / 480 Регистрация: 16.01.2015 Сообщений: 5,853 |
||||
31.10.2017, 12:19 |
4 |
|||
0 |
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
||||
31.10.2017, 12:22 [ТС] |
5 |
|||
Попробовал так:
{Документ.ОбъектныйГрафик.Форма.ФормаДокумента.Форма(164)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные)
0 |
1965 / 1350 / 480 Регистрация: 16.01.2015 Сообщений: 5,853 |
|
31.10.2017, 12:23 |
6 |
jediAlex, Написал же как с клиента на сервер передать
0 |
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
||||
31.10.2017, 12:28 [ТС] |
7 |
|||
ошибка:{Документ.ОбъектныйГрафик.Форма.ФормаДокумента.Форма(190)}: Метод объекта не обнаружен (ТекущиеДанные)
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
31.10.2017, 13:12 |
8 |
|||
jediAlex, потому что на сервере не надо переопределять переменную ТекущееЗадание, плюс на сервер вы не передадите строку ТЧ, передавайте сразу все нужные реквизиты:
0 |
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
||||||||
31.10.2017, 13:51 [ТС] |
9 |
|||||||
сделал так:
теперь ругается на строку
{Документ.ОбъектныйГрафик.Форма.ФормаДокумента.Форма(189)}: Метод объекта не обнаружен (ТекущиеДанные)
0 |
GreenkA 3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
||||
31.10.2017, 13:53 |
10 |
|||
jediAlex, блин, не заметила у вас скобки. Это не метод, никаких скобок быть не должно:
0 |
4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
|
31.10.2017, 13:58 [ТС] |
11 |
блиин, я уже сам туплю)))
0 |
3053 / 2000 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
31.10.2017, 13:59 |
12 |
jediAlex, нормально все) работает?
0 |
4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 638 |
|
31.10.2017, 14:06 [ТС] |
13 |
спасибо всем за помощь
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
31.10.2017, 14:06 |
13 |