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

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Из 1с 8.2 подключаюсь к 1С 7.7 в которой необходимо создать элемент справочника и элемент подчиненного ему справочника.

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

{ОбщийМодуль.РаботаСДокументами.Модуль(152)}: Ошибка при установке значения атрибута контекста (вид)

                               _адреса.вид = почтовый;

по причине:

Неизвестная ошибка

В чем может быть загвоздка?. Вот собственно сам код:

       глV7 = Новый COMОбъект («V77.Application»);

       Каталог=»/d\1Сbase1″;

       Открыта = глV7.Initialize(глV7.RMTrade, Каталог+» /NАвто», «»);

       
       Если Открыта = 0 Тогда

           Сообщить(«Ошибка открытия информационной базы»);

       Иначе

           
           _контрагенты=глV7.CreateObject(«Справочник.Покупатели»);

           _контрагенты.ВыбратьЭлементы();

           
           _страны=глV7.CreateObject(«Справочник.Страны»);

           _страны.ВыбратьЭлементы();

           
           _адреса=глV7.CreateObject(«Справочник.Адрес»);

           //    _адреса.ВыбратьЭлементы();

           
           
           чек = 0;

           пока _контрагенты.ПолучитьЭлемент()=1 цикл            

               док=_контрагенты.ТекущийЭлемент();

               Если Не СсылкаКлиент.ЭтоГруппа Тогда

                   //    Если док.родитель.код <> «» Тогда

                   Если СокрЛП(док.код) = СокрЛП(СсылкаКлиент.Код) Тогда

                       сообщить(«найден «+док.код);

                       чек = 1;

                       Прервать;

                   КонецЕсли;

                   //    КонецЕсли;                

               Иначе

                   Если док.родитель.код = «» Тогда    

                       Если СокрЛП(док.код) = СокрЛП(СсылкаКлиент.Код) Тогда

                           чек = 1;

                           Прервать;

                       КонецЕсли;

                   КонецЕсли;    

               КонецЕсли;                                            

           КонецЦикла;

           
           Если чек = 0 Тогда

               Если Не СсылкаКлиент.ЭтоГруппа Тогда

                   Клиент77 = глV7.CreateObject(«Справочник.Покупатели»);

                   Клиент77.Новый();

                   Клиент77.Код = СокрЛП(СсылкаКлиент.Код);

                   Клиент77.Наименование = СокрЛП(СсылкаКлиент.Наименование);

                   Клиент77.нип = СокрЛП(СсылкаКлиент.УНП);

                   Клиент77.регон = СокрЛП(СсылкаКлиент.Регон);

                   Клиент77.крс = СокрЛП(СсылкаКлиент.НКРС);

                   Клиент77.Power = СокрЛП(СсылкаКлиент.Power);

                   
                   СчСтрана = 0;

                   пока _страны.ПолучитьЭлемент()=1 цикл            

                       Страна77=_страны.ТекущийЭлемент();

                       Если СокрЛП(Страна77.наименование) = СокрЛП(СсылкаКлиент.Странарегистрации.Наименование) Тогда

                           Клиент77.страна = Страна77;

                           СчСтрана = 1;

                           Прервать;

                       КонецЕсли;

                   КонецЦикла;

                   Если СчСтрана = 0 и СсылкаКлиент.Странарегистрации.Наименование <> «» Тогда

                       Страна77 = глV7.CreateObject(«Справочник.Страны»);

                       Страна77.Новый();

                       Страна77.Код = СсылкаКлиент.Странарегистрации.ТекстКод;

                       Страна77.Наименование = СсылкаКлиент.Странарегистрации.Наименование;

                       Страна77.Записать();

                       Клиент77.страна = Страна77;

                   КонецЕсли;    

                   
                   Клиент77.Записать();

                   
                   //Ставим флаг ПереданВ1С77 в истину, чтоб больше автоматически не передавать этого клиента

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

                   Клиент82.ПереданВ1С77 = Истина;

                   Клиент82.Записать();

                   
                   Сообщить(«Записан клиент «+Клиент77.код + » «+Клиент77.наименование);

                   
                   Для Каждого Стр Из Клиент82.Адреса Цикл

                       
                       _адреса=глV7.CreateObject(«Справочник.Адрес»);        

                           
                       _адреса.ИспользоватьВладельца(Клиент77);

                       _адреса.Новый();

                       _адреса.Наименование = Стр.Адрес;

                       _адреса.доп = Стр.Адрес;

                       Если Стр.ВидАдреса = Перечисления.ВидыАдресов.Почтовый Тогда

                                                           
                       _адреса.вид = глv7.Перечисление.ВидАдреса.почтовый;

                       ИначеЕсли Стр.ВидАдреса = Перечисления.ВидыАдресов.Юридический Тогда

                           _адреса.вид = глv7.Перечисление.ВидАдреса.юридический;

                       ИначеЕсли Стр.ВидАдреса = Перечисления.ВидыАдресов.электронный Тогда

                           _адреса.вид = глv7.Перечисление.ВидАдреса.электронный;

                       КонецЕсли;

                       _адреса.Записать();

                       
                   КонецЦикла;

                   
                   
               Иначе    

                   
               КонецЕсли;

           КонецЕсли;    

           
       КонецЕсли;

Содержание:

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

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

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

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

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

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

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

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

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

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

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

Из 1с 8.2 подключаюсь к 1С 7.7 в которой необходимо создать элемент справочника и элемент подчиненного ему справочника.

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

{ОбщийМодуль.РаботаСДокументами.Модуль(152)}: Ошибка при установке значения атрибута контекста (вид)

                               _адреса.вид = почтовый;

по причине:

Неизвестная ошибка

В чем может быть загвоздка?. Вот собственно сам код:

       глV7 = Новый COMОбъект («V77.Application»);

       Каталог=»/d1Сbase1″;

       Открыта = глV7.Initialize(глV7.RMTrade, Каталог+» /NАвто», «»);

       

       Если Открыта = 0 Тогда

           Сообщить(«Ошибка открытия информационной базы»);

       Иначе

           

           _контрагенты=глV7.CreateObject(«Справочник.Покупатели»);

           _контрагенты.ВыбратьЭлементы();

           

           _страны=глV7.CreateObject(«Справочник.Страны»);

           _страны.ВыбратьЭлементы();

           

           _адреса=глV7.CreateObject(«Справочник.Адрес»);

           //    _адреса.ВыбратьЭлементы();

           

           
           чек = 0;

           пока _контрагенты.ПолучитьЭлемент()=1 цикл            

               док=_контрагенты.ТекущийЭлемент();

               Если Не СсылкаКлиент.ЭтоГруппа Тогда

                   //    Если док.родитель.код <> «» Тогда

                   Если СокрЛП(док.код) = СокрЛП(СсылкаКлиент.Код) Тогда

                       сообщить(«найден «+док.код);

                       чек = 1;

                       Прервать;

                   КонецЕсли;

                   //    КонецЕсли;                

               Иначе

                   Если док.родитель.код = «» Тогда    

                       Если СокрЛП(док.код) = СокрЛП(СсылкаКлиент.Код) Тогда

                           чек = 1;

                           Прервать;

                       КонецЕсли;

                   КонецЕсли;    

               КонецЕсли;                                            

           КонецЦикла;

           

           Если чек = 0 Тогда

               Если Не СсылкаКлиент.ЭтоГруппа Тогда

                   Клиент77 = глV7.CreateObject(«Справочник.Покупатели»);

                   Клиент77.Новый();

                   Клиент77.Код = СокрЛП(СсылкаКлиент.Код);

                   Клиент77.Наименование = СокрЛП(СсылкаКлиент.Наименование);

                   Клиент77.нип = СокрЛП(СсылкаКлиент.УНП);

                   Клиент77.регон = СокрЛП(СсылкаКлиент.Регон);

                   Клиент77.крс = СокрЛП(СсылкаКлиент.НКРС);

                   Клиент77.Power = СокрЛП(СсылкаКлиент.Power);

                   

                   СчСтрана = 0;

                   пока _страны.ПолучитьЭлемент()=1 цикл            

                       Страна77=_страны.ТекущийЭлемент();

                       Если СокрЛП(Страна77.наименование) = СокрЛП(СсылкаКлиент.Странарегистрации.Наименование) Тогда

                           Клиент77.страна = Страна77;

                           СчСтрана = 1;

                           Прервать;

                       КонецЕсли;

                   КонецЦикла;

                   Если СчСтрана = 0 и СсылкаКлиент.Странарегистрации.Наименование <> «» Тогда

                       Страна77 = глV7.CreateObject(«Справочник.Страны»);

                       Страна77.Новый();

                       Страна77.Код = СсылкаКлиент.Странарегистрации.ТекстКод;

                       Страна77.Наименование = СсылкаКлиент.Странарегистрации.Наименование;

                       Страна77.Записать();

                       Клиент77.страна = Страна77;

                   КонецЕсли;    

                   
                   Клиент77.Записать();

                   

                   //Ставим флаг ПереданВ1С77 в истину, чтоб больше автоматически не передавать этого клиента

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

                   Клиент82.ПереданВ1С77 = Истина;

                   Клиент82.Записать();

                   
                   Сообщить(«Записан клиент «+Клиент77.код + » «+Клиент77.наименование);

                   
                   Для Каждого Стр Из Клиент82.Адреса Цикл

                       
                       _адреса=глV7.CreateObject(«Справочник.Адрес»);        

                           
                       _адреса.ИспользоватьВладельца(Клиент77);

                       _адреса.Новый();

                       _адреса.Наименование = Стр.Адрес;

                       _адреса.доп = Стр.Адрес;

                       Если Стр.ВидАдреса = Перечисления.ВидыАдресов.Почтовый Тогда

                                                           

                       _адреса.вид = глv7.Перечисление.ВидАдреса.почтовый;

                       ИначеЕсли Стр.ВидАдреса = Перечисления.ВидыАдресов.Юридический Тогда

                           _адреса.вид = глv7.Перечисление.ВидАдреса.юридический;

                       ИначеЕсли Стр.ВидАдреса = Перечисления.ВидыАдресов.электронный Тогда

                           _адреса.вид = глv7.Перечисление.ВидАдреса.электронный;

                       КонецЕсли;

                       _адреса.Записать();

                       
                   КонецЦикла;

                   
               Иначе    

           
       КонецЕсли;



1 февраля, 2017
21 апреля, 2017

Дано

  • 1С конфигурация бухгалтерия предприятия 2.0
  • Ошибка печати ПКО (приходный кассовый ордер):

{ОбщаяФорма.ФормаПечати.Форма(18)}: Ошибка при установке значения атрибута контекста

   ЭлементыФормы.ПолеДокумента.ПолеСверху

по причине:

Несоответствие типов

Анализ проблемы

На первый взгляд все ужасно:

  • в конфигураторе видно, что система пытается выполнить строчку кода:

ЭлементыФормы.ПолеДокумента.ПолеСверху          = ПечатныйДокумент.ПолеСверху;

  • в отладке видно, что обе переменные типа “Число”,
  • синтакс-помощник говорит что:

ТабличныйДокумент (SpreadsheetDocument)

ПолеСверху (TopMargin)

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

Чтение и запись.

То есть ПолеСверху доступно для записи и обе переменные типа число и все тут корректно, но система говорит “Несоответствие типов” – полный бред.

Решение

На решение проблемы натолкнула фраза “Ошибка при установке значения атрибута контекста”, значит что-то не так с доступом.
Оказалось в базе нет ни одного пользователя и работа осуществлялась под пользователем НеАвторизован. После создания пользователя с необходимыми правами все заработало.

Дополнено 2017.04.10

Проблема повторилась, но уже при печати РТУ и с использованием уже настроенной учетной записи.

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

Код 1C v 8.3

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

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

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

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

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

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

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

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

Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку: {МодульПриложения}: Ошибка при установке значения атрибута контекста (***): Несоответствие типов В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows. А как решить, данную, проблему? Комп находиться на расстоянии, профиль почищу, как доберусь, просто хотел узнать, может загвоздка в другом.

Компьютер=Неопределено у тебя скорее всего.

Хм, база одна на 20 компов, проблема только с этим. Неопределенность смотреть в том же модуле?

Смотри  где определяется переменная Компьютер

Переменная Компьютер берется из запроса. Вот кусок кода:

Что будет, если Выборка.Следующий = Ложь?

На моем компе, ни чего не меняется =) На том, посмотреть не могу, плюс, если поменяю код, придется выгонять всех пользователей, что бы обновить, либо ждать, пока ночью обновиться.

Я же написал, что не могу проверить. У себя изменил, в тестовой, все работает.

может получится так, что в справочнике смсКомпьютеры нет наименования проблемного компьютера.

Думал над этим, только, почему программа его не добавляет.

А как, по другому, имя компьютера там появится? =) Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое — все работает. У меня есть подозрение, что не порядки с правами в винде. С админами сейчас поговорю, они как раз, в том здании, где комп.

[А как, по другому, имя компьютера там появится? =)] Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.

Сейчас попробую. Просто не делал ни когда такого, не требовалось.

Справочник заполняется программой. Таки думаю, что с правами косяк.

так есть в справочнике элемент с наименованием того компьютера?

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

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

[Помогло добавление справочника.] Ну вообще это очевидно сразу было — первым делом проверить есть ли в этом справочнике элемент с именем этого компьютера;)

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

Тэги: 1С 8

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

Показывать по
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
сообщений

Код 1C v 8.3

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

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

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

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

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

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

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

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

Утро доброе. Установил 1с на новый компьютер, захожу под любым пользователем, выдает такую ошибку: {МодульПриложения}: Ошибка при установке значения атрибута контекста (***): Несоответствие типов В инете, нашел подобную проблему, только, приравнивание идет к ТекущийПользователь. Там проблема решается чисткой профиля в windows. А как решить, данную, проблему? Комп находиться на расстоянии, профиль почищу, как доберусь, просто хотел узнать, может загвоздка в другом.

Компьютер=Неопределено у тебя скорее всего.

Хм, база одна на 20 компов, проблема только с этим. Неопределенность смотреть в том же модуле?

Смотри  где определяется переменная Компьютер

Переменная Компьютер берется из запроса. Вот кусок кода:

Что будет, если Выборка.Следующий = Ложь?

На моем компе, ни чего не меняется =) На том, посмотреть не могу, плюс, если поменяю код, придется выгонять всех пользователей, что бы обновить, либо ждать, пока ночью обновиться.

Я же написал, что не могу проверить. У себя изменил, в тестовой, все работает.

может получится так, что в справочнике смсКомпьютеры нет наименования проблемного компьютера.

Думал над этим, только, почему программа его не добавляет.

А как, по другому, имя компьютера там появится? =) Перед этим, устанавливал на другие компьютеры 1с, делал все тоже самое — все работает. У меня есть подозрение, что не порядки с правами в винде. С админами сейчас поговорю, они как раз, в том здании, где комп.

[А как, по другому, имя компьютера там появится? =)] Например, пользователь руками создаст элемент справочника. Для это нужно запустить приложение в режиме 1с:Предприятие.

Сейчас попробую. Просто не делал ни когда такого, не требовалось.

Справочник заполняется программой. Таки думаю, что с правами косяк.

так есть в справочнике элемент с наименованием того компьютера?

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

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

[Помогло добавление справочника.] Ну вообще это очевидно сразу было — первым делом проверить есть ли в этом справочнике элемент с именем этого компьютера;)

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

Тэги: 1С 8

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

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