N-S-B
23.08.18
✎
17:30
УТ11, отчет Ведомость по денежным средствам, необходимо сделать отбор по кассирам, создающим ПКО.
У пользователя с полными правами все ок: https://yadi.sk/i/Yhvv9d3y3aVutn
У пользователя с ограниченными правами поле Кассир просто недоступно в Документе: https://yadi.sk/i/FVgj2eDx3aVv3j
Посмотрел обработкой проверки ролей какие роли нужны на данный отчет — все выдал, права на просмотр/чтение пользователей — выдал. Посмотрел сам отчет, какие регистры тянутся — на все выдал права. На сам документ ПКО — выдал.
И все равно поля Кассир нет среди доступных.
Куда копать, как найти ту роль, которой не хватает для отображения поля?
XMMS
23.08.18
✎
17:56
А в документе ПКО у пользователя это поле доступно? Не в отчёте, а в самом документе.
sergey198
23.08.18
✎
17:57
(23) это что за обработка такая?
Pro1001C
23.08.18
✎
18:05
может после выдачи прав еще вспомогательные данные обновить?
N-S-B
23.08.18
✎
18:12
(1) Да
(2) Что-то типа такой http://catalog.mista.ru/public/562698/ их много аналогичных
(3) Так это не новая роль в конфигурации, а просто назначение роли в профиле групп доступа
Pro1001C
23.08.18
✎
18:20
на справочник Пользователи права есть?
Pro1001C
23.08.18
✎
18:21
упс, не внимательный
N-S-B
24.08.18
✎
07:43
Еще какие-нибудь варианты? ))
aka AMIGO
24.08.18
✎
07:56
(7) Есть.Есть в ютубе видео по настройке прав в трех роликах одного автора
https://www.youtube.com/watch?v=zCbPjJNsW2o
Не помню сейчас, во втором или третьем автор поясняет, как выполнить твой вопрос, а в описании дает адрес обработочки, облегчающей жизнь 1с-ника.
lxndr
24.08.18
✎
08:07
смотри интерактивное право на просмотр для измерения регистра
azt-yur
24.08.18
✎
08:15
Может на константу какую нет прав. Проверь функциональные опции, которые установлены для реквизита Кассир в документе, и связанные с ними константы.
aka AMIGO
24.08.18
✎
08:18
+8 Таки во втором, по ссылке «Доступные роли для объектов» — как раз, что автору нужно
dmt
24.08.18
✎
09:53
Гипотеза: должны быть даны права на все виды документов (из используемых в запросе), у которых есть реквизит Кассир.
Проверка:
1. Даем профилю все права — поле Кассир доступно
2. Отключаем права «Добавление изменение инвентаризаций наличных денежных средств», «Чтение документов инвентаризации наличных денежных средств» — поле Кассир недоступно
N-S-B
24.08.18
✎
10:32
(8) (11) Посмотрел видео, это не совсем то, что мне надо. Все, что описывается в видео, я уже проделал в (0):
>Посмотрел обработкой проверки ролей какие роли нужны на данный отчет — все выдал, права на просмотр/чтение пользователей — выдал. Посмотрел сам отчет, какие регистры тянутся — на все выдал права. На сам документ ПКО — выдал.
И все равно поля Кассир нет среди доступных.
У меня же просто не отображается поле в отборе и никаких ошибок нет, по-этому я не могу определить с помощью данной обработки, каких прав мне не хватает.
N-S-B
24.08.18
✎
10:41
(12) Отличная гипотеза, спасибо большое))
Нашел все документы, где используется реквизит Кассир и выдал права на чтения этих документов — поле появилось
dmt
24.08.18
✎
10:47
На здоровье!
Посмотрел видео, честно говоря не понимаю, неужели на больших проектах тоже профили создаются «методом тыка»? Ага, тут недоступно — добавим еще роль, и вот тут еще одну, и еще… Или используют только предопределенные роли + свои на новые объекты
N-S-B
24.08.18
✎
11:28
А вот интересно, как найти необходимую роль для объекта типа МенеджерИсторииРаботыПользователя. Сейчас случайно столкнулся с этим в другом месте. Пользователь без прав получает ошибку:
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1028)}: Ошибка при получении значения атрибута контекста (ИсторияРаботыПользователя)
ИсторияРаботыПользователя.Добавить(НавигационнаяСсылка);
по причине:
Нарушение прав доступа
А где вообще смотреть права и роли для этого объекта? Он встроенный в платформу, насколько я понял и в дереве конфигурации его вообще нет.
N-S-B
24.08.18
✎
11:36
(16) В данном случае ответ нашелся в СП — «Для использования свойства требуется, чтобы для пользователя было доступно право СохранениеДанныхПользователя.»
aka AMIGO
24.08.18
✎
11:45
(15) Ну, метод тыка — не от хорошей жизни.
Наверняка есть вспомогательные обработки, облегчающие труды 1с-ника, только недоступные..
Автор видео предложил свой метод, за что ему отдельное спасибо
Как ни крути — для большинства юзеров он подходит
(17) согласись, что это неожиданно, правда?
Ещё польза от видео: автор предложил 10-11 ролей, помогающих как-то стартануть 1с-прдприятие под новым пользователем, а уж тонкая настройка — через конфигуратор.
Недаром он говорит между прочим, что система ролей крайне неудачна с точки зрения прогера..
dmt
24.08.18
✎
11:50
(18) за ссылку безусловно спасибо
но автору видео пришлось дать кадровику доступ ко всему бухучету
aka AMIGO
24.08.18
✎
11:55
(19) Вот-вот! Именно поэтому надо лезть в конфигурацию, ибо универсальные роли во многих случаях не подходят.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
N-S-B
23.08.18 — 17:30
УТ11, отчет Ведомость по денежным средствам, необходимо сделать отбор по кассирам, создающим ПКО.
У пользователя с полными правами все ок: https://yadi.sk/i/Yhvv9d3y3aVutn
У пользователя с ограниченными правами поле Кассир просто недоступно в Документе: https://yadi.sk/i/FVgj2eDx3aVv3j
Посмотрел обработкой проверки ролей какие роли нужны на данный отчет — все выдал, права на просмотр/чтение пользователей — выдал. Посмотрел сам отчет, какие регистры тянутся — на все выдал права. На сам документ ПКО — выдал.
И все равно поля Кассир нет среди доступных.
Куда копать, как найти ту роль, которой не хватает для отображения поля?
XMMS
1 — 23.08.18 — 17:56
А в документе ПКО у пользователя это поле доступно? Не в отчёте, а в самом документе.
sergey198
2 — 23.08.18 — 17:57
(23) это что за обработка такая?
Pro1001C
3 — 23.08.18 — 18:05
может после выдачи прав еще вспомогательные данные обновить?
N-S-B
4 — 23.08.18 — 18:12
(1) Да
(2) Что-то типа такой http://catalog.mista.ru/public/562698/ их много аналогичных
(3) Так это не новая роль в конфигурации, а просто назначение роли в профиле групп доступа
Pro1001C
5 — 23.08.18 — 18:20
на справочник Пользователи права есть?
Pro1001C
6 — 23.08.18 — 18:21
упс, не внимательный
N-S-B
7 — 24.08.18 — 07:43
Еще какие-нибудь варианты? ))
aka AMIGO
8 — 24.08.18 — 07:56
(7) Есть.Есть в ютубе видео по настройке прав в трех роликах одного автора
Не помню сейчас, во втором или третьем автор поясняет, как выполнить твой вопрос, а в описании дает адрес обработочки, облегчающей жизнь 1с-ника.
lxndr
9 — 24.08.18 — 08:07
смотри интерактивное право на просмотр для измерения регистра
azt-yur
10 — 24.08.18 — 08:15
Может на константу какую нет прав. Проверь функциональные опции, которые установлены для реквизита Кассир в документе, и связанные с ними константы.
aka AMIGO
11 — 24.08.18 — 08:18
+8 Таки во втором, по ссылке «Доступные роли для объектов» — как раз, что автору нужно
dmt
12 — 24.08.18 — 09:53
Гипотеза: должны быть даны права на все виды документов (из используемых в запросе), у которых есть реквизит Кассир.
Проверка:
1. Даем профилю все права — поле Кассир доступно
2. Отключаем права «Добавление изменение инвентаризаций наличных денежных средств», «Чтение документов инвентаризации наличных денежных средств» — поле Кассир недоступно
N-S-B
13 — 24.08.18 — 10:32
(8) (11) Посмотрел видео, это не совсем то, что мне надо. Все, что описывается в видео, я уже проделал в (0):
>Посмотрел обработкой проверки ролей какие роли нужны на данный отчет — все выдал, права на просмотр/чтение пользователей — выдал. Посмотрел сам отчет, какие регистры тянутся — на все выдал права. На сам документ ПКО — выдал.
И все равно поля Кассир нет среди доступных.
У меня же просто не отображается поле в отборе и никаких ошибок нет, по-этому я не могу определить с помощью данной обработки, каких прав мне не хватает.
N-S-B
14 — 24.08.18 — 10:41
(12) Отличная гипотеза, спасибо большое))
Нашел все документы, где используется реквизит Кассир и выдал права на чтения этих документов — поле появилось
dmt
15 — 24.08.18 — 10:47
На здоровье!
Посмотрел видео, честно говоря не понимаю, неужели на больших проектах тоже профили создаются «методом тыка»? Ага, тут недоступно — добавим еще роль, и вот тут еще одну, и еще… Или используют только предопределенные роли + свои на новые объекты
N-S-B
16 — 24.08.18 — 11:28
А вот интересно, как найти необходимую роль для объекта типа МенеджерИсторииРаботыПользователя. Сейчас случайно столкнулся с этим в другом месте. Пользователь без прав получает ошибку:
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1028)}: Ошибка при получении значения атрибута контекста (ИсторияРаботыПользователя)
ИсторияРаботыПользователя.Добавить(НавигационнаяСсылка);
по причине:
Нарушение прав доступа
А где вообще смотреть права и роли для этого объекта? Он встроенный в платформу, насколько я понял и в дереве конфигурации его вообще нет.
N-S-B
17 — 24.08.18 — 11:36
(16) В данном случае ответ нашелся в СП — «Для использования свойства требуется, чтобы для пользователя было доступно право СохранениеДанныхПользователя.»
aka AMIGO
18 — 24.08.18 — 11:45
(15) Ну, метод тыка — не от хорошей жизни.
Наверняка есть вспомогательные обработки, облегчающие труды 1с-ника, только недоступные..
Автор видео предложил свой метод, за что ему отдельное спасибо
Как ни крути — для большинства юзеров он подходит
(17) согласись, что это неожиданно, правда?
Ещё польза от видео: автор предложил 10-11 ролей, помогающих как-то стартануть 1с-прдприятие под новым пользователем, а уж тонкая настройка — через конфигуратор.
Недаром он говорит между прочим, что система ролей крайне неудачна с точки зрения прогера..
dmt
19 — 24.08.18 — 11:50
(18) за ссылку безусловно спасибо
но автору видео пришлось дать кадровику доступ ко всему бухучету
aka AMIGO
20 — 24.08.18 — 11:55
(19) Вот-вот! Именно поэтому надо лезть в конфигурацию, ибо универсальные роли во многих случаях не подходят.
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
Ошибка в 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)
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса) В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
Пожалуйста |
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе. |
Андрей Павлов Заглянувший Сообщений: 13 |
При тестировании обработки столкнулись с ошибкой «Нарушение прав доступа». Ошибка чаще всего возникает при использовании обработки в первые 15 минут после запуска клиента (тонкий/толстый). по причине: по причине: |
Добрый день! |
|
Андрей Павлов Заглянувший Сообщений: 13 |
Добрый день! |
Мария Измайлова Посетитель Сообщений: 1177 |
#4
01.10.2014 11:22:47
Спасибо.Передала разработчику. Еще уточнение-Вы её запускаете под полными правами или нет? Открываете через Главное меню-Файл-Открыть? |
||
Андрей Павлов Заглянувший Сообщений: 13 |
Обработку загружаю в базу как внешнюю, и пользователи запускают ее через свой интерфейс. |
Мария Измайлова Посетитель Сообщений: 1177 |
#6
01.10.2014 11:44:55
Передам разработчику. Если есть возможность обновитесь до релиза 2.0.8.6 и проверьте в нём тоже. |
||
Разработчик просил уточнить знаете ли Вы почему в обработке идет обращение к Обновлению в информационной базе? Вы писали обработку? Т.к. самая вероятная причина-это то,что у менеджера нет прав на выполнение обновления информационной базы, это право есть только у Администратора. |
|
Андрей Павлов Заглянувший Сообщений: 13 |
В обработке вообще нет обращений к модулям конфигурации, Единственное что делает обработка так это создает документ событие(звонок) и на его основании задание (личное). При записи задания и выскакивает ошибка с правами. В коде обработки я комментарий метку оставил. |
Мария Измайлова Посетитель Сообщений: 1177 |
#9
01.10.2014 13:20:13
Хорошо, спасибо за ответ. Передам разработчику. Изменено: Мария Измайлова — 01.10.2014 13:20:32 |
||
Андрей Павлов Заглянувший Сообщений: 13 |
#10
08.10.2014 08:39:52 Мария, вы можете сообщить хотя бы примерные сроки решение проблемы? |
Мария Измайлова Посетитель Сообщений: 1177 |
#11
08.10.2014 10:13:10
Добрый день! |
||
#12
08.10.2014 11:25:01 Ответ разработчика: ошибка не воспроизводится , необходима копия Вашей базы (файл .dt). Вышлите письмо на crm@rarus.ru с пометкой для Хотлайн, передать Кучерову Андрею ( в письме указываете ссылку на тему в форуме, а также ссылку на скачивание базы и данные для входа под тем пользователем,под которым появляется ошибка). |
|
Андрей Павлов Заглянувший Сообщений: 13 |
#13
08.10.2014 15:14:00 Я сомневаюсь что начальство даст разрешение отправить базу в 7 GB со всеми нашими данными. |
Наталья Полубенская Посетитель Сообщений: 698 |
#14
09.10.2014 20:49:22 Добрый день, Андрей!
Мы бы рекомендовали Вам обратиться к разработчику данной внешней обработки. Или написать письмо на линию консультаций crm@raus.ru с описанием Вашей проблемы и ссылкой на ветку форума. |
||
Андрей Павлов Заглянувший Сообщений: 13 |
#15
13.10.2014 09:54:16 Добрый день, Наталья! Разработчиком данной обработки являюсь я. |
Алексей Чаплыгин Посетитель Сообщений: 1018 |
#16
13.10.2014 10:05:43 Добрый день, Андрей! Разница в том, что на данном форуме не ведется техническая поддержка пользователей решений 1С:CRM. Техническая поддержка пользователей ведется, согласно правилам поддержки решений 1С:CRM, по специализированным для этих целей каналам связи, а именно указанный выше адрес технической поддержки. Если у вас возникают сложности в использовании решения — постараемся помочь в их решении. Спасибо за понимание! |
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 |
-
September 13 2016, 22:08
- Общество
- Cancel
_ИнспекторПоКадрам
На основе Подсистемы Кадры / ... — Выгрузил в описание и по тем же объектом проставил права
Настроил Интерфейс — тоже на основе Подсистемы
В Пользователях выбрать Интерфейс, Права, указать режим запуска — Обычное приложение (если Обычное)
Все роли открываются: Роли / Все роли.
Выдает: У текущего пользователя нет доступных ролей, для запуска информационной базы.
Раньше был Пользователь (права), теперь надо выбирать Бухгалтера, но он дает слишком много прав.
Ибо Общий модуль Управление пользователями
Процедура ПроверитьВозможностьРаботыПользователя(Отказ) Экспорт
Если НЕ РольДоступна(«ПолныеПрава») И НЕ РольДоступна(«Бухгалтер») Тогда
//_Отказ = Истина;
#Если Клиент Тогда
//_Предупреждение(«У текущего пользователя нет доступных ролей, для запуска информационной базы.«, 10, «Недостаточно прав доступа»);
#КонецЕсли
КонецЕсли;
КонецПроцедуры
Потом включаем объекты, какие надо (документы — по отбору нужной Подсистемы, остальные можно вообще все включить)
Вызывается из Модуль обычного приложения / ПередНачаломРаботыСистемы()
Можно закомментить или еще как-то обойти: //_ УправлениеПользователями.ПроверитьВозможностьРаботыПользователя(Отказ);
Пишут про RLS (Record Level Security) или ограничение прав на уровне записи… но пока не до того
Выдает нарушение прав доступа из-за Модуля Обычного приложения: ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить()=»»);
Еще и вылетает после этого…
Поставить у константы право Просмотр (заодно и Чтение ставится)
{МодульОбычногоПриложения(100)}: Ошибка при получении значения атрибута контекста (ТекущийПользователь)
Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда
по причине:
Нарушение прав доступа!
добавить ТекущийПользователь в ПараметрыСеанса, сэр (link) — еще —
Ставим Общие / Параметры сеанса / Текущий пользователь — все права.
{МодульОбычногоПриложения(119)}: Ошибка при вызове метода контекста (Получить)
Если Константы.ПрименяемыеСистемыНалогообложения.Получить() = Перечисления.ПрименяемыеСистемыНалогообложения.УпрощеннаяСистемаНалогообложения Тогда
по причине:
Нарушение прав доступа!
Ставим права на все Константы Просмотр-Чтение.
{ОбщийМодуль.ОбщегоНазначения.Модуль(6881)}: Ошибка при вызове метода контекста (Выполнить)РезультатЗапроса = Запрос.Выполнить();
по причине: Недостаточно прав для работы с таблицей «Справочник.ВнешниеОбработки»
Ставим права на Справочники: Внешние обработки, Организации
МенеджерЗаписи в модуле Общего приложения:
{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать)
МенеджерЗаписи.Записать(Истина);
по причине:
Нарушение прав доступа!
Это вот: МенеджерЗаписи = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи(); Стаим права на него
Опять параметры сеанса!… в окне (роли / Все роли) ставим на все …
Планы видов характеристик … Настройки пользователей … на
Уже при запуске …
{МодульОбычногоПриложения(569)}: Ошибка при вызове метода контекста (ПолучитьФорму)
Форма = Обработки.ДополнительнаяИнформация.ПолучитьФорму(«ФормаРабочийСтол»);
по причине:
Нарушение прав доступа!
Справочник. Внешние обработки
На все обработки ставим
{ВнешняяОбработка.ИнтернетПоддержкаПользователей.МодульОбъекта(2041)}: Ошибка при вызове метода контекста (Следующий)
Пока Выборка.Следующий() Цикл
по причине: Нарушение прав доступа!
Можно конечно, до ума довести, но… Короче, судя по всему, надо ставить права бухгалтера а уже потом убирать не нужные
Создаем роль с возможностью только чтения данных без возможности изменения чего-либо
- пригодится для всех пользователей 1С, которые не являются операторами (бухгалтерами) — им нужны в основном отчеты
- для аудиторов
Для начала поставим на всех объектах конфигурации право Просмотр (Чтение добавится автоматически) + Ввод по строке.
Ясно, что возникнут проблемы, т.к. на некоторые объекты нужно право записи.
При запуске от тестового пользователя с данной ролью появляется сообщение:
«У текущего пользователя нет доступных ролей для запуска информационной базы».
Основная проблема типовых конфигураций — в конфе предусмотрено как минимум две роли:
- с минимально необходимыми правами для работе в конфе — но для работы именно оператора (с правами создания документов и наполнения справочников)
- полные права
И поэтому любой пользователь типовой конфы должен по-любому иметь эту роль с минимальными правами оператора. Нам же нужны минимальные права для аудитора (без возможности внесения каких-либо изменений).
В общем модуле УправлениеПользователями отраслевой конфигурации «Подрядчик строительства 4 ред. 2.0» можно найти такую функцию
// Процедура проверяет возможность запуска ИБ с определенными для текущего // пользователя доступными ролями // Процедура ПроверитьВозможностьРаботыПользователя(Отказ) Экспорт Если НЕ РольДоступна("ПолныеПрава") И НЕ РольДоступна("Бухгалтер") Тогда Отказ = Истина; #Если Клиент Тогда Предупреждение("У текущего пользователя нет доступных ролей, для запуска информационной базы.", 10, "Недостаточно прав доступа"); #КонецЕсли КонецЕсли; КонецПроцедуры
Изменим логику с учетом новой роли:
Если НЕ РольДоступна(«ПолныеПрава») И НЕ РольДоступна(«Бухгалтер») И НЕ РольДоступна(«ТолькоЧтение»)
После этого удалось запустить, но окно без интерфейса и сразу нарушение прав доступа
{ОбщийМодуль.ИмпНепоставляемый.Модуль(1732)}: Ошибка при вызове метода контекста (Установить) по причине: Нарушение прав доступа!
Это тоже очень круто, т.к. модуль поставляется в закрытом виде и не ясно, что именно он там хотел установить :(.
Смотрим журнал регистрации: отказано в доступе к константе «Каталог файлов защиты».
Для упрощения процесса поиска необходимых прав
посмотрим, какие константы может изменять роль Бухгалтер и установим по аналогии
- ГотовностьПрограммыКРаботе
- ИмпВалютаПланирования
- ИмпИспользоватьМеханизмАвтоматическогоОбменаДанными
- ИмпКаталогЗащитыФайлов
- ИмпСерияПутевогоЛиста
- Имп_КаталогФайловЗащиты
- ИмпСистемаЗащиты
- ФайлОбработкиИнтернетПоддержкиПользователей (этот не будем разрешать)
Снова пробуем запуститься — очередная ошибка прав доступа
{ОбщийМодуль.ИмпНепоставляемый.Модуль(1732)}: Ошибка при вызове метода контекста (Установить) по причине: У пользователя недостаточно прав на исполнение операции над базой данных. объект: 'ПланОбмена.Полный'; право: 'Чтение' Таблица: 'Node14', SDBL-команда: 'SELECT'.
Добавим право Просмотр для ПланыОбмена и право Использование для интерфейсов (Общий, Полный, Бухгалтерский). Тестовому пользователю назначим основной интерфейс Бухгалтерский.
Очередная попытка запуска — новая ошибка
{МодульОбычногоПриложения(108)}: Ошибка при получении значения атрибута контекста (ТекущийПользователь) Если Не ЗначениеЗаполнено(ПараметрыСеанса.ТекущийПользователь) Тогда по причине: Нарушение прав доступа!
Посмотрим права на ПараметрыСеанса для роли Бухгалтер и сделаем по аналогии
Чтение+изменение
- ДатаОбновленияПовторноИспользуемыхЗначенийМРО
- ИспользуемыеПланыОбмена
- ОбменДаннымиВключен
- ОбщиеЗначения
- ПравилаВыборочнойРегистрацииОбъектов
- ПравилаРегистрацииОбъектов
Нет доступа
- ЗагрузкаПараметровРаботыПрограммы
- ПараметрыКлиентаНаСервере
Следующая ошибка:
{МодульОбычногоПриложения(559)}: Ошибка при вызове метода контекста (ПолучитьФорму) Обработки.ПанельФункций.ПолучитьФорму().Открыть(); по причине: Нарушение прав доступа!
Даем право на запуск обработки ПанельФункций.
Следующая ошибка:
{ОбщийМодуль.УправлениеПользователями.Модуль(135)}: Ошибка при вызове метода контекста (Записать) МенеджерЗаписи.Записать(Истина); по причине: Нарушение прав доступа!
Однако после закрытия работа продолжается и появляются другие окна:
{МодульОбычногоПриложения(575)}: Ошибка при вызове метода контекста (ПолучитьФорму) Форма = Обработки.ДополнительнаяИнформация.ПолучитьФорму("ФормаРабочийСтол"); по причине: Нарушение прав доступа!
Смотрим в журнале регистрации — отказано в праве Изменение для регистра сведений НастройкиПользователей.
Даем права:
- использование обработки ДополнительнаяИнформация
- регистр сведений НастройкиПользователей — Просмотр и Редактирование
Следующая ошибка:
{МодульОбычногоПриложения(190)}: Ошибка при вызове метода контекста (Создать) БИ = Обработки.БухгалтерскиеИтоги.Создать(); по причине: Нарушение прав доступа!
Даем право на использование обработки БухгалтерскиеИтоги.
Следующая ошибка — при попытке сохранить настройки отчета ОСВ (оборотно-сальдовой ведомости)
{ОбщийМодуль.СтандартныеОтчеты.Модуль(867)}: Ошибка при вызове метода контекста (СоздатьЭлемент)
Настройка = Справочники.СохраненныеНастройки.СоздатьЭлемент(); по причине: Нарушение прав доступа!
Даем все права для справочника СохраненныеНастройки, кроме ИнтерактивноеУдаление и прав для предопределенных.
Спустя время обнаружились еще проблемы
- при просмотре документов появляется ошибка права просмотра — Обработка. Предупреждение об изменениях
- при просмотре кассовых документов ошибка права использования — Обработка. Механизм взаимодействия с торговым оборудованием (надо искать обработку ТОСервер).
- при просмотре движений документа ошибка права использования — Обработка. Корректировка движений
При просмотре кассовых документов также возникает ошибка при открытии
{МодульОбычногоПриложения(667)}: Ошибка при вызове метода контекста (Создать)
глСерверТО = Обработки.ТОСервер.Создать(); по причине: Нарушение прав доступа!
Содержание:
1. Ошибка при установке значения атрибута контекста
2. Ошибка при получении значения атрибута контекста
Одной из наиболее частых ошибок исполнения кода 1С являются ошибки, связанные с установкой реквизита либо получением реквизита через точку, либо ошибка при вызове функции или процедуры через точку. Все данные объекты являются атрибутами информационных объектов-владельцев, к которым они принадлежат. Рассмотрим примеры таких ошибок и причины их возникновения.
1. Ошибка при установке значения атрибута контекста
Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута.
Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.
2. Ошибка при получении значения атрибута контекста
Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.
При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).
Специалист компании «Кодерлайн»
Александр Суворов
1 февраля, 2017
21 апреля, 2017
Дано
- 1С конфигурация бухгалтерия предприятия 2.0
- Ошибка печати ПКО (приходный кассовый ордер):
{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста ЭлементыФормы.ПолеДокумента.ПолеСверху по причине: Несоответствие типов |
Анализ проблемы
На первый взгляд все ужасно:
- в конфигураторе видно, что система пытается выполнить строчку кода:
ЭлементыФормы.ПолеДокумента.ПолеСверху = ПечатныйДокумент.ПолеСверху; |
- в отладке видно, что обе переменные типа “Число”,
- синтакс-помощник говорит что:
ТабличныйДокумент (SpreadsheetDocument) ПолеСверху (TopMargin) Использование: Чтение и запись. |
То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.
Решение
На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.
Дополнено 2017.04.10
Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.
Помогло создание нового пользователя с такими же правами доступа. То есть нового создаем, старого удаляем и после этого все работает.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
Михаил80
Дата регистрации: 31.01.2012
Сообщений: 3
«Ну подскажите как исправить ошибку?<br>{Документ.ИК_БезвозмездноеПолучение.Форма.ФормаДокумента(300)} : Ошибка при установке значения атрибута контекста (Видимость)<br>ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость= ВестиПоАналитике;<br>по причине: Несоответствие типов»
ZhAmAn
Дата регистрации: 23.12.2010
Сообщений: 1333
«Яблоко=Апельсин;<br>Вот что у вас,а должно быть яблоко=истина;»
Михаил80
Дата регистрации: 31.01.2012
Сообщений: 3
«И где ошибка?<br> <br>Процедура ДоступностьЭлементов()<br> Если ПоступлениеМЗ Тогда<br> ЭлементыФормы.Панель1.Страницы.МатериальныеЗапасы.Видимость = Истина;<br> ЭлементыФормы.Панель1.Страницы.ОсновныеСредства.Видимость = Ложь;<br> Иначе<br> ЭлементыФормы.Панель1.Страницы.МатериальныеЗапасы.Видимость = Ложь;<br> ЭлементыФормы.Панель1.Страницы.ОсновныеСредства.Видимость = Истина;<br> Если УчетНПА Тогда<br> ЭлементыФормы.ОсновныеСредства.Колонки.ГрупповойУчет.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КодПоОКОФ.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СуммаАмортизации.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетАмортизации.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаАмортизации.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаЗатрат.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.НачислятьАмортизацию.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ОстСрокПолезногоИспользования.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ПорядокПогашенияСтоимости.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СпособНачисленияАмортизации.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СрокПолезногоИспользования.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетУчетаЗатрат.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат2.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат3.Видимость = Ложь;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат4.Видимость = Ложь;<br> Иначе<br> ЭлементыФормы.ОсновныеСредства.Колонки.ГрупповойУчет.Видимость = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.АмортизационнаяГруппа.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КодПоОКОФ.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СрокПолезногоИспользования.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СуммаАмортизации.Видимость = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетАмортизации.Видимость = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаАмортизации.Видимость = Истина;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ОстСрокПолезногоИспользования.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ПорядокПогашенияСтоимости.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СпособНачисленияАмортизации.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.НачислятьАмортизацию.Видимость = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СчетУчетаЗатрат.Видимость = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.КОСГУСчетаЗатрат.Видимость = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат2.Видимость = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат3.Видимость = НачислятьАмортизациюКазны;<br> ЭлементыФормы.ОсновныеСредства.Колонки.СубконтоСчетаЗатрат4.Видимость = НачислятьАмортизациюКазны;<br> КонецЕсли;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ДатаВводаВЭксплуатацию.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ФактическийСрокЭкспл.Видимость = ВестиПоАналитике;<br> ЭлементыФормы.ОсновныеСредства.Колонки.ИнвНомер.Видимость = ВестиПоАналитике;<br> КонецЕсли;»
ZhAmAn
Дата регистрации: 23.12.2010
Сообщений: 1333
Что такое ВестиПоАналитике?отладчиком смотрел что там?
Михаил80
Дата регистрации: 31.01.2012
Сообщений: 3
к счету добовляется аналитика, так как у счета может быть несколько аналитик. Скорей всего чтото в праметрах аналитики. Например для 01 счета справочник сотрудников может быть подключен как аналитика, но называться он будет материально ответственное лицо.
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
ZhAmAn
Дата регистрации: 23.12.2010
Сообщений: 1333
я знаю что такое аналитика,конкретно скажи что за переменная!
Денис (САМАРА)
Дата регистрации: 09.04.2008
Сообщений: 8351
А что это за документ такой «ИК_БезвозмездноеПолучение» и откуда он взялся в БП?
ZhAmAn
Дата регистрации: 23.12.2010
Сообщений: 1333
Показывать по
10
20
40
сообщений
Heltarion 2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
||||
1 |
||||
02.12.2011, 11:18. Показов 8369. Ответов 11 Метки нет (Все метки)
Добрый день! ТПП — «табличное поле правил», в ней уже занесены некотрые значения из XML Код процедуры:
__________________ 0 |
308 / 308 / 1 Регистрация: 16.01.2011 Сообщений: 1,073 |
|
02.12.2011, 11:32 |
2 |
СохранитьНажатие(Элемент) это событие формы 1 |
2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
|
02.12.2011, 11:56 [ТС] |
3 |
СохранитьНажатие(Элемент) это событие формы В МодулеОбъекта создал функцию «Процедура СохранитьВЭксель(ТПП) Экспорт» 0 |
308 / 308 / 1 Регистрация: 16.01.2011 Сообщений: 1,073 |
|
02.12.2011, 12:10 |
4 |
процедуру ИнициализацияЭкселя() тоже закинь в модуль объекта 1 |
2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
|
02.12.2011, 12:19 [ТС] |
5 |
Да я именно так и сделал, просто забыл упомянуть, ТПП нужна в противном случае он не понимает что это за переменная Добавлено через 4 минуты Так работает, но если я поставлю Дело в том что «стр.НоменклатураБазы» — это справочник ссылка, если у нее текстовый тип то программа глотает и записывает. 0 |
19 / 18 / 1 Регистрация: 15.11.2011 Сообщений: 54 |
|
02.12.2011, 12:22 |
6 |
чет вы мудрено делаете. 1 |
2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
|
02.12.2011, 12:28 [ТС] |
7 |
В данный момент ему не нравится присваемое значение к ячейке экселя (если я правильно понимаю сообщение «Ошибка при установке значения атрибута контекста (Value)» ) Причем если тип значения строка, то он его получает без вопросо, если тип значения СправочникССсылка, то он руегается на «Ошибка при установке значения атрибута контекста (Value)». Я просто не понимаю как обратиться к такому типу переменных чтобы получить значение типа строка. 0 |
19 / 18 / 1 Регистрация: 15.11.2011 Сообщений: 54 |
|
02.12.2011, 12:30 |
8 |
а принудительно все значения в текст перевести нельзя? 1 |
308 / 308 / 1 Регистрация: 16.01.2011 Сообщений: 1,073 |
|
02.12.2011, 12:30 |
9 |
стр.НоменклатураБазы.Наименование например 1 |
2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
|
02.12.2011, 12:32 [ТС] |
10 |
стр.НоменклатураБазы — это уже есть наименование интересующего меня поля (имя столбца), в некотрых случаях можно писать: стр.НоменклатураБазы.Значение, но это нетот случай Добавлено через 56 секунд 0 |
308 / 308 / 1 Регистрация: 16.01.2011 Сообщений: 1,073 |
|
02.12.2011, 12:34 |
11 |
значение из Excel? 1 |
Heltarion 2 / 2 / 0 Регистрация: 21.11.2011 Сообщений: 57 |
||||
02.12.2011, 12:43 [ТС] |
12 |
|||
Рабочий код:
0 |
Код 1C v 8.3
// Реквизиты
ДобавляемыеРеквизиты = Новый Массив;
ИмяТаблицы = "КомандыДополнительныхОбработок";
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяТаблицы, Новый ОписаниеТипов("ТаблицаЗначений")));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Ссылка", Новый ОписаниеТипов("СправочникСсылка.ДополнительныеОтчетыИОбработки"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ВариантЗапуска", Новый ОписаниеТипов("ПеречислениеСсылка.СпособыВызоваДополнительныхОбработок"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ИмяЭлемента", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Представление", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Идентификатор", Новый ОписаниеТипов("Строка"), ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ЭтоОтчет", Новый ОписаниеТипов("Булево"), ИмяТаблицы));
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
//реквизит
ИмяЭлемента = "Добавлен" + ИндексЭлемента;
Реквизит = Новый РеквизитФормы(ИмяЭлемента, ОписаниеТипов);
ДобавляемыеРеквизиты.Добавить(Реквизит);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
//команда печать
ИмяКомандыПечать = "ДобавленПечать" + ИндексЭлемента;
КомандаПечать = Команды.Добавить(ИмяКомандыПечать);
КомандаПечать.Действие = "ПечатьДокумента";
КомандаПечать.Подсказка = НСтр("ru = 'Печать документа...'");
//элемент формы
//Родитель = Элементы.ГруппаСформированныеДокументы;
Элемент = Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ЭлементГруппа);
Элемент.Вид = ВидПоляФормы.ПолеНадписи;
Элемент.ПутьКДанным = ИмяЭлемента;
Элемент.Гиперссылка = Истина;
Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
ЭтаФорма[ИмяЭлемента] = Документ;
//кнопка печать
ИмяЭлементаПечать = "ДобавленПечать" + ИндексЭлемента;
ЭлементПечать = Элементы.Добавить(ИмяЭлементаПечать, Тип("КнопкаФормы"), ЭлементГруппа);
ЭлементПечать.Картинка = БиблиотекаКартинок.Печать;
ЭлементПечать.Отображение = ОтображениеКнопки.Картинка;
ЭлементПечать.ИмяКоманды = ИмяКомандыПечать;
Ошибка при получении значения атрибута контекста (ТекущийПользователь)
bless18 |
|
||
---|---|---|---|
Ошибка при получении значения атрибута контекста (ТекущийПользователь): Попытка получения неинициализированного значения параметра сеанса
Пользователь = ПараметрыСеанса.ТекущийПользователь; по причине: Попытка получения неинициализированного значения параметра сеансаКод 1C v 8.х
Где происходит их инициализация? |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
Когда в Общие — Параметры сеанса добавил ТекущийПользователь, то его нужно определять при загрузке:
так же в процедуре ПриНачалеРаботыСистемы пишешь что то типо: Код 1C v 8.х
Это работает при условии, что ИмяПользователя заданное в конфигураторе, равно Имени введенному в справочнике Пользователей в реквизит Код |
bless18 |
|
||
---|---|---|---|
А если не совпадают, можно как-нибудб привязать пользователя к сотруднику? |
E_Migachev |
|
||
---|---|---|---|
А лучше добавить процедуру в Модуль сеанса(Правой клавишей щелкаещь на названии конфигурации и выбираешь Открыть модуль сеанса)
В ней создаешь Процедура УстановкаПараметровСеанса () и в ней пишешь код который я предложил выше или так, Если не совпадают: Код 1C v 8.х
Эта процедура вызывается раньше чем ПриНачалеРаботыСистемы. Ну а дальше подставлять сопоставленное значение при создании соответствующего документа: Код 1C v 8.х
События модуля сеанса: |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
bless18 |
|
||
---|---|---|---|
Спасибо вам огромное! Вы мне очень помогли! |
E_Migachev |
|
||
---|---|---|---|
Пожалуйста |
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе. |