Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Чтение json встроенными методами сериализованного элемента справочника

есть http сервис, который возвращает json вида:

{
#type: "jcfg:CatalogObject.КакойтоСправочник",

#value: {

IsFolder: false,
Ref: "eb04c6b2-fdb7-11e6-8046-000c29123d1d",
DeletionMark: false,
Owner: {
#type: "jcfg:CatalogRef.КакойтоСправочник2",

#value: "644ee8c2-f814-11e6-8046-000c29123d1d"
},
Parent: "00000000-0000-0000-0000-000000000000",
Code: "000000000001",
Description: "Описание",
ПолнНаименование: "ПолнНаименование",
Исполнитель: "00000000-0000-0000-0000-000000000000",
КПКВ: "КПКВ",
Цель: "00000000-0000-0000-0000-000000000000",
Ид77: "",
Распорядитель: "00000000-0000-0000-0000-000000000000",
Бюджет: "888b8034-d7e5-11e6-98e4-000c29123d1d",
ЗаконОснование: "00000000-0000-0000-0000-000000000000",
Корзина: 0,
ЭтоОбъектСтроительства: false,
ПлановыйЭлементКФК: "00000000-0000-0000-0000-000000000000",
НеДействующий: false,
флНеПечатать: false,
Задача: "eb04c6b4-fdb7-11e6-8046-000c29123d1d",
ИдМинФин: "",
флНеПечатать2: false,
флНеПечатать3: false,
флНеПечатать4: false,
флНеПечатать5: false,
Уровень: 0
}
}

При попытке чтения сего текста через
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ИмяФайла);
РезультатJSON = ПрочитатьJSON(ЧтениеJSON);
Получаю ошибку чтения Недопустимое имя Свойства: "#type 'для чтения JSON в объект Структура.

а говорит что так и надо читать.
Собственно вопрос - можно ли прочитать такой json не заменяя #?
Ответ: есть такой параметр
Вопрос: Элементы справочника

Что такое элементы справочника?
Ответ: Yulunga, ))))
nameless1399, В справочнике "Участники темы Элементы справочника"
Элементы:
1.nameless1399
2.Yulunga
3.polax
Вопрос: Замена единицы по классификатору в элементах справочника единицы измерения. Возможно?

Всем привет!
Возможно глупый вопрос, но я в этом 1С-е ничё не понимаю. Подскажите, пожалуйста, есть несколько товаров у которых в подчинённой единице измерения стоит неправильная единица по классификатору. Возможно поменять в таких элементах справочника единиц измерения единицу по классификатору с неправильной на правильную, если по товару уже были движения? Ничего не поползёт? Заранее спасибо!
Ответ:
LittleLoya
Вот базовую я уже поменяла, но это не решило проблему. Я так поняла, что нужно теперь поменять во всех элементах справочника единицы измерения, т.е. найти все элементы с неправильной, и заменить её на правильную. Всё остальное останется так же как и было (т.е. коэффициент, наименование и т.п.).
Создайте еще одну единицу у товара, пропишите коэффициент такой же как и у старой единицы и замените все старые элементы на новые обработкой "Универсальный поиск и замена значений".
Вопрос: v8: Запретить редактирование элементов справочника

Как программно запретить редактирование элементов справочника через форму элемента?
и сделать это надо из обработки

Пробовал так:

ФормаЭлементаСправочника = Справочники.МойСправочник.ПолучитьФорму("ФормаЭлемента");
ФормаЭлементаСправочника.ТолькоПросмотр = Истина;
не помогло


Заранее спасибо.
Ответ:
Для остальных основных объектов (справочники, константы, документы, регистры…), набор прав у роли достаточно стандартен:

Чтение — чтение (программное)
Добавление — добавление (программное)
Изменение — изменение (программное)
Удаление — удаление (программное)
Просмотр — просмотр
Интерактивное добавление — интерактивное добавление
Редактирование — редактирование
Интерактивная пометка удаления — интерактивная пометка на удаление
Интерактивное снятие пометки удаления — снятие пометки на удаление
Интерактивное удаление помеченных— удаление помеченных объектов
Ввод по строке — использование режима ввода по строке
Интерактивное удаление — непосредственное удаление (shift +del)

Права только для документов:

Интерактивное проведение — проведение
Отмена проведения — отмена проведения документов
Интерактивное проведение неоперативное — проведение (стандартными командами форм) документа в неоперативном режиме
Интерактивная отмена проведения — интерактивная отмена проведения
Интерактивное изменение проведенных — редактирование проведенного документа. Если право у роли не установлено, то пользователь не может проведенный документ удалить, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра
Вопрос: v7: Получить ссылку на новый элемент справочника ПриЗаписи

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

Теперь, в предопределённой процедуре ПриЗаписи() я отлавливаю ТекущийЭлемент() и передаю его в процедуру глобального модуля.
С изменением элементов - всё хорошо. Но в от с новыми элементами - засада.
Для новых элементов ТекущийЭлемент() - пустой.

Пытался организовать ОбработчкиОжидания, записывал в глобальные переменные  код или иной идентификационный признак вновь созданного элемента, подключал обработчик, в процедуре обработчика находил элемент, передавал в глобальную процедуру. Всё хорошо работает, если нажимать кнопку "Записать".
Но если нажимать при создании новых элементов кнопку "Ок", обработчик ожидания не срабатывает...

Что-нибудь посоветуете? Как отловить ТекущийЭлемент() для нового элемента справочника и передать в свою глобальную процедуру?
Ответ: () Не хранимку, а триггер. Самый простой и надёжный способ, ибо в семёрке нормального события для этой цели нет.

схема такая
тзп_Триггер = "Set NoCount ON
|
|CREATE TRIGGER спрКонтрагенты_Вставка
|ON $Справочник.Контрагенты
|AFTER INSERT
|Begin
|    INSERT INTO Протокол (ид13, ....)
|    SELECT
|        ($ВидСправочника36.Контрагенты + Ins.ID) ид13,
|        ...
|    FROM
|        Inserted Ins  --Inserted - это специальная табличка внутри триггера, в которой содержатся добавленные строки
|End
|
|";
Вопрос: как при создании нового элемента справочника программно определить его родителя до записи самого эле

Прошу п,омочь. Как при создании нового элемента справочника программно определить его родителя до записи самого элемента 1С 8.3
Ответ:
Скорее всего имеется ввиду использование методов ПолучитьСсылку() и УстановитьСсылкуНового(). Ну и работу в транзакции, соответственно.
Вопрос: Не открываются элементы справочника Контрагенты

Платформа 8.3.6.2041
Бухгалтерия 3.0.40.36
Пытаюсь открыть или копировать элемент справочника Контрагенты, выдаёт ошибку ПолеОбъектаНеобнаружено(ЗаголовокКонтактнаяИнформацияПоле3). Тестирование и исправление не помогает. Произошло это после обновления с 3.0.40.31 до 3.0.40.36. Есть у кого какие-нибудь варианты?

Ответ:
Товарищи. Поймал тот же камень в свой огород. Много бился с предопределенными.
А ларчик просто открывался!
Простого вашего "спасибо" будет вполне достаточно

Теперь к делу:
РАЗ вы видите это сообщение, ТО У ВАС СОЗДАНЫ ВРУЧНУЮ реквизиты контактной информации В СПРАВОЧНИКЕ "Виды контактной информации".
Решение простое: в каждой группе сперва должны следовать предопределенные элементы, а только за ними созданные вручную!
Если сообщение видите, значит созданный вручную идет раньше последнего по списку предопределенного.

Что бы увидеть предопределенные, нажмите справа вверху Меню- Изменить форму. Встаньте на Ссылка, вверху нажмите Добавить поля. Отметьте галку "Предопределенный".
Затем в форме списка (в списке) синими стрелочками вверху сгоните НЕ предопределенные вниз - в очередь за предопределенными!

Скрины вам помогут. Я был в шоке, когда ЭТО нашел... Уже обработку написал для изменения ВСЕХ предопределенных (4 типа объектов) ))

Ссылка для быстрого перехода в справочник: e1cib/list/Справочник.ВидыКонтактнойИнформации









Вопрос: Копирование элементов справочника номенклатура

Всем привет. Подскажите пожалуйста.
Необходимо при копировании элемента справочника «Номенклатура», чтобы пользователю задавался вопрос о необходимости скопировать спецификацию, после чего если нужно скопировать он выбирал какую спецификацию копировать. Также задавался вопрос какое количество копий.
Ответ: Вот так сделал. Создал новую форму, и кнопку на форме списка номенклатуры. Спасибо кто помогал.
&НаКлиенте
Процедура СкопироватьНоменклатуру(Команда)
    
    Если НЕ ЗначениеЗаполнено(Спецификация) Тогда
        Предупреждение("Не выбрана спецификация. Копирование невозможно!");
        Возврат;
    КонецЕсли;
    
    НоваяНом = Номенклатура.Ссылка;
                                   
    Для ТекущийНомер = 1 По Количество Цикл 

        КопияНом = НоваяНом.Скопировать();
        КопияНом.Записать();    

        КопияЕдХран = НоваяНом.ЕдиницаХраненияОстатков.Скопировать();
        КопияЕдХран.Владелец = КопияНом.Ссылка;
        КопияЕдХран.Записать();
        
        Если НоваяНом.ЕдиницаХраненияОстатков <> НоваяНом.ЕдиницаДляОтчетов Тогда 
            КопияЕдОтч = НоваяНом.ЕдиницаДляОтчетов.Скопировать();
            КопияЕдОтч.Владелец = КопияНом.Ссылка;
            КопияЕдОтч.Записать();
        КонецЕсли;    
            
            
        КопияНом.ЕдиницаХраненияОстатков = КопияЕдХран.Ссылка;
        Если НоваяНом.ЕдиницаХраненияОстатков <> НоваяНом.ЕдиницаДляОтчетов Тогда 
            КопияНом.ЕдиницаДляОтчетов = КопияЕдОтч.Ссылка;
        Иначе    
            КопияНом.ЕдиницаДляОтчетов = КопияЕдХран.Ссылка;
        КонецЕсли;    
        КопияНом.Записать();    
        
        Если ЗначениеЗаполнено(Спецификация) Тогда
            НоваяСпец = Спецификация.Ссылка;
            КопияСпец = НоваяСпец.Скопировать();
            КопияСпец.ВыходныеИзделия.Очистить();
            Стр = КопияСпец.ВыходныеИзделия.Добавить();
            Стр.Номенклатура = КопияНом.Ссылка;
            Стр.ЕдиницаИзмерения = КопияНом.Ссылка.ЕдиницаХраненияОстатков;
            Стр.Количество = 1;
            Стр.Кратность = 1;
            
            КопияСпец.Записать();
        КонецЕсли;
        
                
    КонецЦикла;
        
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Номенклатура = Параметры.СсылкаНом;
    
КонецПроцедуры

&НаКлиенте
Процедура СпецификацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка    = Ложь;
    ФормаВыбораСпецификации = Справочники.СпецификацииНоменклатуры.ПолучитьФормуВыбора(, Элемент);

    ФормаВыбораСпецификации.Отбор.СпецификацииИзделийПоНоменклатуре.ВидСравнения  = ВидСравнения.Равно;
    ФормаВыбораСпецификации.Отбор.СпецификацииИзделийПоНоменклатуре.Значение      = Номенклатура;
    ФормаВыбораСпецификации.Отбор.СпецификацииИзделийПоНоменклатуре.Использование = Истина;
    
    ФормаВыбораСпецификации.Отбор.Активная.Установить(Истина);

    ФормаВыбораСпецификации.РежимВыбора                  = Истина;

    ФормаВыбораСпецификации.Открыть();

КонецПроцедуры
Вопрос: Программный вывод нескольких картинок на форму элемента справочника

Добрый день.
Необходимо отобразить на форме элемента справочника несколько картинок, но количество заранее не известно (то есть нельзя в конфигураторе просто добавить 10 реквизитов), поэтому при создании на сервере формы я создаю программно необходимое количество реквизитов формы с типом строка, заполняю их навигационными ссылками на картинки, которые хранятся в базе, программно создаю элементы формы ("ПолеКартинки"), прописываю путь к данным к соответствующим реквизитам. Но элементы никак не хотят становиться полем картинки, выглядят как поле ввода, хотя даже при отладке в свойствах видно, что это якобы поле картинки. Для теста создавала элемент в конфигураторе - тут все ок, картинка отображается как надо, поэтому прошу помощи знающих людей в создании элементов формы ПолеКартинки программно.
Заранее спасибо!
Ответ: () слишком мудрено, есть более простые способы, вопрос именно в программном создании элементов формы
Вопрос: ограничение доступа на чтение элементов справочника "Номенклатура" УТ 11.1

Поделитесь, пожалуйста, примером разграничения доступа на чтение к "Номенклатуре".

Конфигурация: УТ 11.1, Тонкий клиент, платф. 8.3

Описание задачи: В базе есть несколько пользователей с привязкой к организации (каждый пользователь ведет учет по своей организации). Штатными средствами разграничены права пользователей, в том числе и права на доступ/изменение справочника "Номенклатуры" (Номенклатура привязана к "ГруппамДоступаНоменклатуры"). Необходимо разграничить доступ на чтение номенклатуры (скрыть видимость номенклатуры для пользователей - каждый видит только свою номенклатуру).
Пробовал копировать шаблоны ограничений в ролях с правами на изменение/чтение номенклатуры и подставлял в новую роль с правом на чтение, но результат нулевой.

Пример шаблона (второй параметр "Добавление" менял на "Чтение"):
#ПоЗначениям( "Справочник.Номенклатура","Добавление","НеОграничиватьДоступКГруппам",

"ГруппыНоменклатуры","Ссылка", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" )

Может кто-нибудь подсказать как можно решить задачу?
Ответ: Именно на чтение. По аналогии с доступом к справочнику "Организации", "Склады" или документу "ЗаказКлиента".