1C:Бухгалтерия
1С:CRM ПРОФ, КОРП
1С:ERP Управление предприятием 2
Платформа 1С v8.3
Корп. решения 1С
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В документов есть реквизит ответственный. Надо что доступность было ложь для всех документов. Через подписка на событии не могла это сделать. По-моему надо создать обработку. Но есть такой вопрос как ПолучитьОбъект() для всех документов. Метаданные.Документы? или через запрос?
Спасибо всем за ранее
Спасибо всем за ранее
По теме из базы знаний
- Запрет проведения документов в неоперативном режиме УТ 10.3
- Удаление документов Реализация и Счет-фактура выданный в конфигурации Бухгалтерия предприятия КОРП 3.0
- Многопоточная обработка данных на примере перепроведения документов
- Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)
- Исправление документов интеркампани
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
У вас все-таки трудности не с русским языком, а с логикой. Почему -то очень трудно понять не ваш язык, а то что вы пытаетесь сделать... Причем во всех ваших темах...
Если вам необходимо закрыть доступность Ответственного в документах, лучшим решением будет создание расширения, в котором будут новые формы для ваших документов с запроещенным для изменения полем формы.
В чем проблема не ясно...
И уж тем более не понятно при чем тут подписки на событие , обработки и ПолучитьОбъект()...
Если вам необходимо закрыть доступность Ответственного в документах, лучшим решением будет создание расширения, в котором будут новые формы для ваших документов с запроещенным для изменения полем формы.
В чем проблема не ясно...
И уж тем более не понятно при чем тут подписки на событие , обработки и ПолучитьОбъект()...
(2) Ну вот нет!!!!! создавать расширение и туда пихать все документы - это не очень хорошая идея - трудно затратная
Автор смотрите, На самом деле Вы правильно смотрите на ПОДПИСКИ СОБЫТИЯ.
Можно создать подписку на события, в качестве источника выбрать ДокументМенеджер и событие ОбработкаПолученияФормы и написать код. То есть событие будет подключаться когда будет открываться форма. В процедуру передается источник - документ менеджер и вид формы. Следовательно я получил документ и форму, в этой форме можно найти элементы для Отвественного и установить доступность ЛОЖЬ!
Автор смотрите, На самом деле Вы правильно смотрите на ПОДПИСКИ СОБЫТИЯ.
Можно создать подписку на события, в качестве источника выбрать ДокументМенеджер и событие ОбработкаПолученияФормы и написать код. То есть событие будет подключаться когда будет открываться форма. В процедуру передается источник - документ менеджер и вид формы. Следовательно я получил документ и форму, в этой форме можно найти элементы для Отвественного и установить доступность ЛОЖЬ!
(4)Спасибо за вниманию. Написал код такой. Но по-моему есть ошибка.
Процедура ОтключитьДоступностьРеквизитаОтветственныйОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
Объект = Источник.Ссылка.ПолучитьОбъект();
Объект.Ответственный.Доступность = Ложь;
КонецПроцедуры
(7) тогда должно вот так получиться (как вы написали немного не так)
Если ТипЗнч(Источник) = Тип("ДокументМенеджер.ДокументКакойто") Тогда
Если ВидФормы = "ФормаОбъекта" Тогда // или ФормаДокумента
СтандартнаяОбработка = ложь;
// Получаем форму открываемомго объекта
Если Параметры.Свойство("Ключ") Тогда
Документ = Параметры.Ключ.ПолучитьОбъект();
Иначе
ЭлементОбъект = Документы.ДокументКакойто.СоздатьДокумент();
КонецЕсли;
ФормаДокумента = ЭлементОбъект.ПолучитьФорму("ФормаОбъекта"); // или ФормаДокумента
// Изменям форму программно
ФормаДокумента .ЭлементыФормы.Ответственный.Доступность = Ложь;
// Открываем измененную форму
ФормаДокумента.Открыть();
КонецЕсли;
КонецЕсли;
Показать
(6)Могу ли создавать обработку для ее.
Писал такой код но выдают ошибку. -
Писал такой код но выдают ошибку. -
Для Счетчик = 0 По Метаданные.Документы.Количество() Цикл //Получить количеству документов
Стр = Метаданные.Документы.Получить(Счетчик);
СтрокаБезКавычки = СтрЗаменить(Стр.Имя,"""",""); //Удаляем кавычки
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
|Ссылка
|ИЗ
|Документы." + СтрокаБезКавычки; //Вот по-моему ошибка в запросе. Там пусто. Надо указать дата?
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Документ = Выборка.Ссылка.ПолучитьОбъект();
Документ.Ответственный.Доступность = Ложь;
КонецЦикла;
Показать
Вот так можно
То есть берем все объекты метадданых документов и каждый вид начинаем перебирать и получать каждый документ!
Для Каждого ОбъектМетаданных Из Метаданные.Документы Цикл
ВыборкаДокументов = Документы[ОбъектМетаданных.Имя].Выбрать();
Пока ВыборкаДокументов.Следующий() Цикл
ОбъектДокумент = ВыборкаДокументов.Ссылка.ПолучитьОбъект();
//// тут тип документ объект, далаем что нам нужно
КонецЦикла;
КонецЦикла;
То есть берем все объекты метадданых документов и каждый вид начинаем перебирать и получать каждый документ!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот