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

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

1C
1
2
3
4
приОткрытии
Если ЗначениеЗаполнено(Объект.Склад)Тогда
          Элементы.Склад.Доступность = Ложь;
    КонецЕсли;
таким Макаром работает только на клиенте внешнюю обработку пропускает.....
Ответ:
1C
1
2
3
4
5
6
7
8
9
10
&НаСервере
Процедура Команда1НаСервере()
Партнер = Объект.Реквизит1.ПолучитьОбъект();
Партнер.Склад = "333";
Try
   партнер.Записать();
Except
EndTry;
 
КонецПроцедуры
Вопрос: Заблокировать форму документа сразу после проведения

Добрый день.
Подскажите, может кто-то сталкивался с задачей: блокировать(ТолькоПросмотр = Истина) форму документа сраааазу же после успешного проведения, если пользователь её не закрыл, не переоткрыл, а просто нажал Провести и остался на ней.

На данный момент максимум чего удалось добиться - блокировать форму проведенного документа при его открытии:

Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    Если Объект.Проведен = Истина Тогда
        ЭтаФорма.ТолькоПросмотр = Истина;
    КонецЕсли;
КонецПроцедуры
Ответ: &НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
    Если Объект.Проведен Тогда
        ЭтаФорма.ТолькоПросмотр = Истина;
    КонецЕсли; 
КонецПроцедуры
Вопрос: Нет доступа к Объекту при загрузке (обмен данными)

Правила обмена данными. ПКО Контрагенты. При загрузке вызываю алгоритм ПереносКИ передавая в него параметр Объект.

Код алгоритма:


Если не объект = неопределено тогда
    НетуСоответствия = ложь;
    
    
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    УдалитьКонтактнаяИнформация.Вид,
    |    УдалитьКонтактнаяИнформация.Вид.Наименование
    |ИЗ
    |    РегистрСведений.УдалитьКонтактнаяИнформация КАК УдалитьКонтактнаяИнформация
    |ГДЕ
    |    НЕ УдалитьКонтактнаяИнформация.Вид.Предопределенный
    |    И УдалитьКонтактнаяИнформация.Вид.ВидОбъектаКонтактнойИнформации = ЗНАЧЕНИЕ(Перечисление.УдалитьВидыОбъектовКонтактнойИнформации.Контрагенты)
    |    И УдалитьКонтактнаяИнформация.Объект.Ссылка = &Объект";
    Запрос.Параметры.Вставить("Объект", Объект.Ссылка);
    ТаблицаУдалитьВидыКонтактнойИнформации = Запрос.Выполнить().Выгрузить();
    
    СоответствиеВидовКИ = Новый Соответствие;
    
    // Справочник "КонтактныеЛица"

    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ИнформАдресКонтактногоЛица     , Справочники.ВидыКонтактнойИнформации.АдресДляИнформированияКонтактныеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонКонтактногоЛица         , Справочники.ВидыКонтактнойИнформации.ТелефонРабочийКонтактныеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонМобильный               , Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйКонтактныеЛица);    
    
    // Справочник "Контрагенты"

    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ЮрАдресКонтрагента         , Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ФактАдресКонтрагента       , Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонКонтрагента         , Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
    
    НайденнаяСтрока = ТаблицаУдалитьВидыКонтактнойИнформации.Найти("Почтовый адрес", "ВидНаименование"); 
    Если НайденнаяСтрока <> Неопределено Тогда 
        СоответствиеВидовКИ.Вставить(НайденнаяСтрока.Вид, Справочники.ВидыКонтактнойИнформации.ПочтовыйАдресКонтрагента);
    КонецЕсли;
    
    НайденнаяСтрока = ТаблицаУдалитьВидыКонтактнойИнформации.Найти("Факс", "ВидНаименование"); 
    Если НайденнаяСтрока <> Неопределено Тогда 
        СоответствиеВидовКИ.Вставить(НайденнаяСтрока.Вид, Справочники.ВидыКонтактнойИнформации.ФаксКонтрагенты);
    КонецЕсли;
    
    // Справочник "Организации"

    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонОрганизации          , Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонПоЮрАдресуОрганизации, Справочники.ВидыКонтактнойИнформации.ТелефонПоЮридическомуАдресуОрганизации);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ФаксОрганизации             , Справочники.ВидыКонтактнойИнформации.ФаксОрганизации);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ФактАдресОрганизации        , Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ЮрАдресОрганизации          , Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.АдресОрганизацииПочтовый    , Справочники.ВидыКонтактнойИнформации.ПочтовыйАдресОрганизации);
    
    
    // Справочник "ФизическиеЛица"

    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ИнформАдресФизЛица     , Справочники.ВидыКонтактнойИнформации.АдресДляИнформированияФизическиеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ФактАдресФизЛица       , Справочники.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ЮрАдресФизЛица         , Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонФизЛица         , Справочники.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица);
    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.ТелефонСлужебный        , Справочники.ВидыКонтактнойИнформации.ТелефонРабочийФизическиеЛица);
    
    // Справочник "Пользователи"

    СоответствиеВидовКИ.Вставить(Справочники.УдалитьВидыКонтактнойИнформации.СлужебныйАдресЭлектроннойПочтыПользователя, Справочники.ВидыКонтактнойИнформации.EmailПользователя);
    
    СоответствиеГруппВидовКИ = Новый Соответствие;
    СоответствиеГруппВидовКИ.Вставить(Тип("СправочникСсылка.КонтактныеЛица")          , Справочники.ВидыКонтактнойИнформации.СправочникКонтактныеЛица);
    СоответствиеГруппВидовКИ.Вставить(Тип("СправочникСсылка.Контрагенты")             , Справочники.ВидыКонтактнойИнформации.СправочникКонтрагенты);
    СоответствиеГруппВидовКИ.Вставить(Тип("СправочникСсылка.Организации")             , Справочники.ВидыКонтактнойИнформации.СправочникОрганизации);
    СоответствиеГруппВидовКИ.Вставить(Тип("СправочникСсылка.Пользователи")            , Справочники.ВидыКонтактнойИнформации.СправочникПользователи);
    СоответствиеГруппВидовКИ.Вставить(Тип("СправочникСсылка.ФизическиеЛица")          , Справочники.ВидыКонтактнойИнформации.СправочникФизическиеЛица);
    
    // Перенос контактной информации из РС в табличные части справочников

    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
    |ПОМЕСТИТЬ ОбъектыСКИ
    |ИЗ
    |    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ПользователиКонтактнаяИнформация.Ссылка
    |ИЗ
    |    Справочник.Пользователи.КонтактнаяИнформация КАК ПользователиКонтактнаяИнформация
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ФизическиеЛицаКонтактнаяИнформация.Ссылка
    |ИЗ
    |    Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    КонтрагентыКонтактнаяИнформация.Ссылка
    |ИЗ
    |    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    КонтактныеЛицаКонтактнаяИнформация.Ссылка
    |ИЗ
    |    Справочник.КонтактныеЛица.КонтактнаяИнформация КАК КонтактныеЛицаКонтактнаяИнформация
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    УдалитьКонтактнаяИнформация.Объект КАК Объект,
    |    УдалитьКонтактнаяИнформация.Тип,
    |    УдалитьКонтактнаяИнформация.Вид,
    |    УдалитьКонтактнаяИнформация.Вид.Наименование КАК ВидНаименование,
    |    УдалитьКонтактнаяИнформация.Вид.Тип КАК ВидТип,
    |    УдалитьКонтактнаяИнформация.Представление,
    |    УдалитьКонтактнаяИнформация.Поле1,
    |    УдалитьКонтактнаяИнформация.Поле2,
    |    УдалитьКонтактнаяИнформация.Поле3,
    |    УдалитьКонтактнаяИнформация.Поле4,
    |    УдалитьКонтактнаяИнформация.Поле5,
    |    УдалитьКонтактнаяИнформация.Поле6,
    |    УдалитьКонтактнаяИнформация.Поле7,
    |    УдалитьКонтактнаяИнформация.Поле8,
    |    УдалитьКонтактнаяИнформация.Поле9,
    |    УдалитьКонтактнаяИнформация.Поле10
    |ИЗ
    |    РегистрСведений.УдалитьКонтактнаяИнформация КАК УдалитьКонтактнаяИнформация
    |        ЛЕВОЕ СОЕДИНЕНИЕ ОбъектыСКИ КАК ОбъектыСКИ
    |        ПО УдалитьКонтактнаяИнформация.Объект = ОбъектыСКИ.Ссылка
    |ГДЕ
    |    НЕ УдалитьКонтактнаяИнформация.Объект.Ссылка ЕСТЬ NULL
    |    И ОбъектыСКИ.Ссылка ЕСТЬ NULL
    |    И УдалитьКонтактнаяИнформация.Объект.Ссылка = Объект
    |ИТОГИ ПО
    |    Объект";
    
    Запрос.Параметры.Вставить("Объект", Объект);
    ВыборкаОбъект = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаОбъект.Следующий() Цикл
        Выборка = ВыборкаОбъект.Выбрать();
        Пока Выборка.Следующий() Цикл
            Если СоответствиеВидовКИ[Выборка.Вид] = Неопределено Тогда 
                НайденныйВидКИ = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию(Выборка.Вид, Истина, СоответствиеГруппВидовКИ[ТипЗнч(Выборка.Объект)]);
                Если Не ЗначениеЗаполнено(НайденныйВидКИ) Тогда

                    ВидКИДругое    = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Другое (любая другая контактная информация)", Истина, СоответствиеГруппВидовКИ[ТипЗнч(Выборка.Объект)]);
    
                    Если ЗначениеЗаполнено(ВидКИДругое) тогда
                        СоответствиеВидовКИ.Вставить(Выборка.Вид, ВидКИДругое);
                    Иначе
                        НетуСоответствия = Истина;
                    КонецЕсли;
                Иначе
                    СоответствиеВидовКИ.Вставить(Выборка.Вид, НайденныйВидКИ);
                КонецЕсли;
            КонецЕсли;
            
            Если НетуСоответствия тогда
                НетуСоответствия = ложь;
                продолжить; 
            КонецЕсли;
            
            НоваяСтрока = Объект.КонтактнаяИнформация.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
            НоваяСтрока.Вид = СоответствиеВидовКИ[Выборка.Вид];
            НоваяСтрока.Тип = Выборка.Тип;
            
            Если Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
                НоваяСтрока.ЗначенияПолей = "Индекс=" + Выборка.Поле1 + Символы.ПС
                + "Регион="           + Выборка.Поле2 + Символы.ПС
                + "Район="            + Выборка.Поле3 + Символы.ПС
                + "Город="            + Выборка.Поле4 + Символы.ПС
                + "НаселенныйПункт="  + Выборка.Поле5 + Символы.ПС
                + "Улица="            + Выборка.Поле6 + Символы.ПС
                + "Дом="              + Выборка.Поле7 + Символы.ПС
                + "Корпус="           + Выборка.Поле8 + Символы.ПС
                + "Квартира="         + Выборка.Поле9 + Символы.ПС
                + "ТипДома=дом"       + Символы.ПС
                + "ТипКорпуса=корпус" + Символы.ПС
                + "ТипКвартиры=кв.";
            ИначеЕсли Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
                НоваяСтрока.ЗначенияПолей = "КодСтраны=" + Выборка.Поле1 + Символы.ПС
                + "КодГорода="     + Выборка.Поле2 + Символы.ПС
                + "НомерТелефона=" + Выборка.Поле3 + Символы.ПС
                + "Добавочный="    + Выборка.Поле4;
                
                НоваяСтрока.НомерТелефонаБезКодов = Выборка.Поле3;
                НоваяСтрока.НомерТелефона         = Выборка.Поле1 + Выборка.Поле2 + Выборка.Поле3;
            ИначеЕсли Выборка.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты Тогда
                НоваяСтрока.АдресЭП = Выборка.Представление;
            КонецЕсли;
            
            // Удаление символов переноса строк.

            НоваяСтрока.Представление = СтрЗаменить(НоваяСтрока.Представление, Символы.ПС," ");
            
        КонецЦикла;
        НетуСоответствия = ложь;
    КонецЦикла;
КонецЕсли;



Ошибка:

ЗАГРУЗКА В ПРИЕМНИКЕ: Помилка при завантаженні даних: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1498)}: Помилка в обробнику події ПриЗагрузкеОбъекта
    ИмяПКО                 =  Контрагенты
    ТипОбъекта             =  Контрагент
    Объект                 =  ПОСТАЧАЛЬНИКИ ФОП (послуги)
    Обработчик             =  ПриЗагрузкеОбъекта
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Добавить): Объект недоступен для изменения.
    ПозицияМодуля          =  (164)
    КодСообщения           =  20

Ошибка при выгрузке данных для узла плана обмена 
    ТипОбъекта             =  Справочник объект: Контрагенты
    Объект                 =  Ягельська Ірина Вітольдівна ФО
    ОписаниеОшибки         =  Помилка при завантаженні даних: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1498)}: Помилка в обробнику події ПриЗагрузкеОбъекта
    ИмяПКО                 =  Контрагенты
    ТипОбъекта             =  Контрагент
    Объект                 =  ПОСТАЧАЛЬНИКИ ФОП (послуги)
    Обработчик             =  ПриЗагрузкеОбъекта
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (Добавить): Объект недоступен для изменения.
    ПозицияМодуля          =  (164)
    КодСообщения           =  20
    ПозицияМодуля          =  Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1304)
    КодСообщения           =  72
    УзелПланаОбмена        =  Бух20

Окончание выгрузки: 28.12.2018 14:14:05

Выгружено объектов: 11


В чем может быть причина? Или же если я не могу так обращаться к Объекту, то как мне по другому добавить значения в ТЧ КонтактнаяИнформация?
Ответ: Еще в догоночку по теме. При занрузке у меня есть объект, но соответственно ссылки на него еще нету? При загрузке ведь объект еще не записан?
Вопрос: Получить объекты выделенных элементов динамического списка

Всем привет!
Блин! столкнулся с проблемой ... даже не знаю..
Что нужно для первого шага задуманной процедуры.. ПОЛУЧИТЬ ОБЪЕКТ ЭЛЕМЕНТА ВЫДЕЛЕННОЙ СТРОКИ ДИНАМИЧЕСКОГО СПИСКА!
Я просто не могу понять почему это можно когда речь о получении одного элемента списка:
Код:
СписокИмя="Список"; ЭлементСписка = Элементы[СписокИмя].ТекущаяСтрока; Предупреждение(ЭлементСписка);
А почему целая проблема когда нужно получить объекты несколько выделенных элементов уже в цикле.
Код:
СписокИмя="Список";
ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
Сообщить(ЭлементСписка);
КонецЦикла;
И самое не понятное, что бы получить не объект элемента, а просто значение реквизита можно сделать так:
Код:
ЭлементСписка=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка)["ИмяРеквизита"];
Только в случае если это список справочника, то можно указать любой реквизит наименование, код и т.д.
Но в случае, если список документов то, стоит только указать реквизит возврата на пример номер то выдает кляузу. И вообще на какие то определенные реквизиты реагирует нормально. А на какие то ревет.
Дур-дом ... т.е. платформе не все реквизиты по вкусу, что ли ? .. одурею.
Поэтому ни в какую... А нужно элементарное... Просто получить объекты выделенных элементов списка. А уже полом сам знаю как получить нужные значения реквизитов полученных объектов списка.
Конечно для этого есть команда ПолучитьОбъект(), но она для сервера.
И что понять не могу, почему если список справочника все без проблем, а если документа то выдает кляузу. Тогда как и тот и другой это динамический список.
Поэтому как получить объекты? Может что то не учел. И может капризной среде нужен на пример какой то индекс ... вообщем не знаю.
Поэтому это уже не просто просьба а крик о помощи!
Буду очень очень очень очень признателен!
Ответ:
Да получилось.. вот таким макаром
Код:
СписокИмя="Список";
ВыделенныеСтроки = Элементы[СписокИмя].ВыделенныеСтроки;
Для каждого СтрокаСписка Из ВыделенныеСтроки Цикл
ЭлементКод=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).код;
ЭлементИмя=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Наименование;
Сообщить(ЭлементИмя+" - "+ЭлементКод);
КонецЦикла;
В том и дело, что в выше указанном коде он используется, но для списка документов возникает кляуза.
Я просто не знаю "Разбирайте" что имеется ввиду.... и как разбирать В указном цикле он и разбирается.
Просто кляузничает если список документа. Ну на пример если так
Код:
ЭлементНомер=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка).Номер;
Тут же ревет о том, что "Поле объекта не обнаружено (Номер)"
Ладно! Если так не хочет тогда без номера
Код:
ЭлементСписка_Объект=Элементы[СписокИмя].ДанныеСтроки(СтрокаСписка);
Сообщить(ЭлементСписка_Объект);
На что любезно но не без ехидства сообщает: "". И ничего более.
А нужно, что бы он выдавал список выделенных объектов (не по типу текста а просто ссылки или объекты). И так по всем тем выделенным элементам которых затрагивает цикл.
Вот что нужно!
Только не понятно как это сделать?
Гуууууу ....
Вообщем прощу и буду очень признателен!
И если не трудно побольше конкретики и работающих примеров.
Буду признателен!
Вопрос: Поле объекта не обнаружено (Объект) ДанныеФормы = Форма.Объект;

Пытаюсь открыть форму не сохраненного документа, выскакивает ошибка.
Раньше работало.
Бухгалтерия 3.1 

&НаКлиенте
Процедура СоздатьДокументТовары()
    Форма = ПолучитьФорму("Документ.ВводНачальныхОстатков.ФормаОбъекта");
    ДанныеФормы = Форма.Объект;
    ЗаполнитьДокументНаСервере(ДанныеФормы);
    КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
    Форма.Открыть();
КонецПроцедуры

&НаСервере
Функция ЗаполнитьДокументНаСервере(ДанныеФормы);

    Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.ВводНачальныхОстатков"));
    Док.РазделУчета = Объект.РазделУчета;
    //Для каждого НоваяСтрока Из Объект.ТабличнаяЧасть Цикл

    //    //СтрДок = Док.Товары.Добавить();

    //    //СтрДок.Количество = Стр.Количество;

    //    //СтрДок.Номенклатура = Стр.Номенклатура;

    //    НоваяСтрока = Док.НоменклатураНаСкладе.Добавить();

    //    //НоваяСтрока.НомерСтрокиТЧ  = НомСт;

    //    НоваяСтрока.СчетУчета = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах;

    //    НоваяСтрока.Номенклатура = НоваяСтрока.Номенклатура;

    //    

    //КонецЦикла;

    
    ЗначениеВДанныеФормы(Док,ДанныеФормы);

КонецФункции
Ответ: Всем спасибо, проблему нашел. Не указал вид учета.

    ЗначенияЗаполнения = Новый Структура();
    ЗначенияЗаполнения.Вставить("РазделУчета", Объект.РазделУчета);
    Форма = ОткрытьФорму("Документ.ВводНачальныхОстатков.ФормаОбъекта", Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения));
    ДанныеФормы = Форма.Объект;
Вопрос: Правила регистрации объектов

Суть в следующем, есть работающий обмен между ЗУП 3.1 и УПП. Правила конвертации объектов не типовые (ибо типовых нет). В правилах регистрации объектов - пусто. Понадобилось донастроить обмен так, чтобы подразделения выгружались только актуальные. То есть если у подразделения Расформировано = Истина, то его регистрировать и выгружать не надо. Сделал в базе Конвертации правила регистрации объектов, пробовал делать отбор по свойствам объектов для справочника ПодразделенияОрганизаций, то есть указывал свойство Расформировано, вид сравнения равно, значение Ложь. Ничего не дало. Пробовал там же в обработчиках событий перед обработкой добавить Отказ = Объект.Расформировано;    тоже не помогло. После того как я эти правила регистрации загружаю в базу, все равно при записи расформированного подразделения оно регистрируется в обмене. Я чего-то не догоняю? Что еще надо сделать-то, условие вроде бы простейшее, но не работает
Ответ: я свой вариант кстати не пробовал прогонять, может и мой работал. Я посчитал, что в зарегистрированных объектах мои объекты по отбору/отсечке вообще не должны появляться. и пытался найти такой вариант. Возможно я не понимаю логику работы, как и в () и все объекты всегда показываются в зарегистрированных, а уже при обмене накладываются правила регистрации. короче задача закрыта, если будет еще что-то подобное - буду копать глубже
Вопрос: Как при открытии формы на нее вывести реквизит объекта?

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РеквизитФормыВЗначение("Объект").ЗаполненыВсеКонстанты();  //тут заполняются реквизиты объекта, например КаталогОбменаИнформацией

//но, на форме реквизит объекта КаталогОбменаИнформацией пустой
КонецПроцедуры
Ответ: разобрался.
В конце модуля обработки вызвал эту процедуру
ЗаполненыВсеКонстанты();

и на форме все реквизиты объекта заполнены
Вопрос: Блокировка объекта

1С:Предприятие 8.3 (8.3.6.2152) режим управляемых форм.
День добрый, суть задачи следующая:
Есть справочник, ссылку на объект которого планирую выбирать запросом и предоставлять пользователю для редактирования. Для того, что бы разные пользователи не получили для редактирования один и тот же объект справочника, необходимо что то предпринять. Верно ли я понял, что для этого можно использовать блокировку? Если да, то как грамотно это сделать?
Ответ:
Что-то предпринимать нужно в том случае, если один и тот же объект может быть отредактирован не из основной формы этого объекта.
Если редактирование объекта выполняется через основную форму, то система сама блокирует объект при открытии формы, о чем было замечено TODD22.
Вопрос: Пакетное создание объектов конфигурации

Я в тестовой конфигурации сконфигурировал некий механизм (журналирование, замер производительности и т.д.), который никак не связан с объектами конфигурации, где будет использоваться. Он состоит из нескольких объектов: регистр сведений, общий модуль, общая форма, константы.
Вопрос: можно ли, как-нибудь, средствами 1С:Конфигуратор, просто взять, и выгрузит эти объекты в какой-нибудь волшебный файл, который потом я смогу загрузить в любую конфигурацию, чтобы там появились эти объекты?

А если ещё в некоторых фиксированных процедурах существующих модулей появится несколько строк кода, то вообще будет супер.
Ответ: () разрабатывать эти объекта надо в отдельной конфигурации и поставлять в другие посредством комплекта поставки. В "профессиональной разработке" поставка расписана во всех мучительных подробностях
Вопрос: При обработке, чтобы объекты не попадали в план обмена полный

Всем привет. Подскажите. Есть база УПП, РИБ, обмен по плану полный. Нужно обработкой почистить базу, но чтобы объекты не попали в регистрацию изменений. Пробовал ставить
"....обменданнным.получатели.автозаполнение = ложь", не получается, все равно данные попадают в план обмена полный. Как победить?
Ответ:
Направляю ряд законченных обработчиков
Процедуру вызываете для обработчика. Перед употреблением встряхнуть на тестовой базе
Код:
Процедура ВыполнитьЗапись(ДокументОбъект)
   
    ДокументОбъект.ОбменДанными.Получатели.Очистить();
    ДокументОбъект.ОбменДанными.Получатели.Автозаполнение = ложь;
    МассивРегистраций = ПолучитьУзлыВКоторыхДокументЗарегистрирован(ДокументОбъект); // формирует массив уже имеющихся регистраций
      
    Если ДокументОбъект.Проведен Тогда
        Попытка
            ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
        Исключение
            ТекстОшибки = ОписаниеОшибки();
            Сообщить(ТекстОшибки);
        КонецПопытки;
       
    Иначе
        Попытка
            ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
       
    КонецЕсли;
   
    СнятьРегистрациюСУзлов(ДокументОбъект); // снимает всю регистрацию
    ЗарегистрироватьНаОбмен(МассивРегистраций); // возвращает регистрацию из массива
   
КонецПроцедуры

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

Процедура СнятьРегистрациюСУзлов(ДокументОбъект)
   
    Для каждого ПланМенеджер из ПланыОбмена Цикл
        ПланУзелВыборка = ПланМенеджер.Выбрать();
        Пока ПланУзелВыборка.Следующий() Цикл
            ПланУзел = ПланУзелВыборка.Ссылка;
            // нельзя проверять свой же узел ена изменения
            Если ПланМенеджер.ЭтотУзел() = ПланУзел Тогда
                Продолжить;
            КонецЕсли;
            // удалить регистрацию можно только если она разрешена
            Попытка
                ПланыОбмена.УдалитьРегистрациюИзменений(ПланУзел, ДокументОбъект.Ссылка);
            Исключение
               
            КонецПопытки;
        КонецЦикла;
    КонецЦикла;
   
КонецПроцедуры

Процедура ЗарегистрироватьНаОбмен(МассивРегистраций)
   
    Для каждого стр из МассивРегистраций Цикл
        ПланМенеджер = стр.Менеджер;
        ПланУзел = стр.Узел;
        Объект = стр.Объект;
        ПланыОбмена.ЗарегистрироватьИзменения(ПланУзел, Объект);
    КонецЦикла;
   
КонецПроцедуры