1с бсп добавить новый документ
В УТ 11.4 БСП 3.1.3 надо добавить в структуру подчиненности документ. В критерии отбора СвязанныеДокументы добавил его.
Но меню структуры подчиненности не появилось.
Читал что в модуле менеджера надо добавить вот это:
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
Но такой процедуры уже нет.
(3) пробывал, не помогает. В типовой УТ в документе Реализации например нет вызова данной процедуры, но структура есть.
// СтандартныеПодсистемы.ПодключаемыеКоманды
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
.
.
КонецПроцедуры
Документ свой или типовой? Если в критерии отбора добавил, то смотри, подключена ли подсистема "Подключаемые команды" к этому документу.
И да, читать на ИТС инструкцию именно к этой версии БСП.
(13)
Структура подчиненности
Подсистема Структура подчиненности предоставляет отчет о взаимосвязах родительских и подчиненных документов. Например, просматривать цепочки связанных документов для заказов, договоров и т.п.
Настройка
Принять решение по поводу списка документов, справочников и планов видов характеристик (далее - документы), для которых требуется выводить отчет Связанные документы. Например, заказы, договоры и т.п.
Если в конфигурацию внедрена подсистема Подключаемые команды, то дополнительных действий не требуется: команда для открытия отчета Связанные документы автоматически размещается в подменю Отчеты.
Если в конфигурации отсутствует подсистема Подключаемые команды, то задать список типов выбранных документов в типах параметра общей команды СвязанныеДокументы.
Для настройки связи между родительскими и подчиненными документами, справочниками и ПВХ, выводимыми в отчет Связанные документы, необходимо настроить критерий отбора СвязанныеДокументы. В свойстве Тип требуется указать возможные типы родительских документов, а в свойстве Состав – реквизиты подчиненных документов, справочников и планов видов характеристик, в которых будет происходить поиск родительских документов. Например, указать, что в реквизите Договор заказа покупателя находится ссылка на родительский договор.
Настройка переопределяемых модулей
При необходимости вписать реализацию в функции переопределяемого модуля подсистемы СтруктураПодчиненностиПереопределяемый.
Настройка прав доступа пользователей
Для настройки прав доступа пользователей к данным подсистемы следует использовать следующую роль:
№ Роли и их назначение
ПросмотрСвязанныеДокументы.
Дает пользователю право на команду и общую форму СвязанныеДокументы.
Использование при разработке конфигурации
Ниже описан порядок действий для добавления "скрепки" (присоединение файлов) к новому документу "НашНовыйДокумент" (как пример).
1. Копируем справочник с наименованием содержащим на конце словосочетание "ПрисоединенныеФайлы". Например "АвансовыйОтчетПрисоединенныеФайлы".
2. Меняем наименование так, чтобы префикс точно соответствовал наименованию документа, а окончание содержало "ПрисоединенныеФайлы". В нашем случае: "НашНовыйДокументПрисоединенныеФайлы".
3. Меняем ТИП у реквизита "ВладелецФайла" справочника "НашНовыйДокументПрисоединенныеФайлы" на "НашНовыйДокумент".
4. Включаем в состав определяемых типов "ПрисоединенныйФайл" и "ПрисоединенныйФайлОбъект" наш новый справочник "НашНовыйДокументПрисоединенныеФайлы".
5. Расширим состав определяемого типа "ВладелецПрисоединенныхФайлов" нашим документом (ДокументСсылка) "НашНовыйДокумент".
6. Расширим состав типов свойства "Источник" у подписки "ПереопределитьПолучаемуюФормуПрисоединенногоФайла", включив в него справочник "НашНовыйДокументПрисоединенныеФайлы".
7. Расширим состав типов свойства "Источник" подписки УстановитьПометкуУдаленияПрисоединенныхФайловДокументов, включив в него наш новый документ (ДокументОбъект) "НашНовыйДокументПрисоединенныеФайлы".
8. Расширим состав общей команды "ПрисоединенныеФайлы" и "ПрисоединенныеФайлыБП", включив в него наш новый документ (ДокументСсылка).
Если необходимо добавить "Скрепку" на форму списка (в типовом варианте должна добавиться автоматически), чтобы картинка значения появлялась при наличии прикрепленных файлов у документа (строка в списке), то выполняем следующие действия:
1. В форме списка, у реквизита "Список" имеющего тип "ДинамическийСписок" выставляем галку "ПроизвольныйЗапрос", после чего открываем настройку списка (в там же в свойствах) и добавляем в блок "Выбрать":
НаличиеФайлов.ЕстьФайлы КАК ЕстьФайлы
2. После того, как поправили запрос, в реквизитах списка появится "ЕстьФайлы". Перетаскиваем реквизит в табличное поле и указываем в свойствах:
Случилась у меня задачка сделать в типовой конфигурации (УНФ 1.6.24.193 - это неважно) доступ на уровне записей (RLS) для нового документа. Документ сделан был быстро методом «Копи-Паста» в моем случае исходным был документ ЗаказПоставщику (Источник), а создавался документ РеестрОтгрузки (НовыйДокумент).
С первого раза с правами не влетело. Не взлетело и потом с пинками… Далее опишу методику поиска решения, потому-что через пару лет уже сами объекты библиотеки стандартных подсистем (БСП) сильно поменяются.
Чтобы понять объем катастрофы, можно установить фильтр конфигурации по подсистемам - «СтандартныеПодсистемы\УправлениеДоступом» :
Итого: 7 Общих модулей, 13 определяемых типов, 4 справочника, 19 регистров сведений.
Сразу же выделил два регистра с которыми у меня возникли проблемы.
Шаги большого пути:
1. Добавить ссылки на НовыйДокумент, в составных типах данных там где были ссылки на документ Источник. Таких данных оказалось 3. Все они были определяемые типы: ВладелецЗначенийКлючейДоступа, ВладелецЗначенийКлючейДоступаДокумент, ПолеРегистраКлючейДоступаКРегистрам. Эти типы пришлось снимать с поддержки, механизм расширений пока для этого не готов.
2. По условиям задачи требовалось создать новую роль с ограничением доступа по Организации и Контрагентам. В новую роль копируем Шаблоны из роли Источника. Стандартные шаблоны написаны универсально без указания текущего объекта. Обычно всё выносится в параметры. В моем случае копировалось из роли ДобавлениеИзменениеПодсистемыЗакупки :
Настраиваем права Новой роли:
Копировать нужно по очереди отдельно для каждого права. В ограничениях доступа для Прав Чтение, Добавление, Изменение в конструкциях типа:
меняем Источник на НовыйДокумент:
3. Проверяем наличие экспортной процедуры в модуле менеджера НовогоДокумента
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
4. Поиск прямого обращения к документу Источника в модулях этой подсистемы позволило обнаружить 2 процедуры. Переопределяем две экспортные процедуры из модуля УправлениеДоступомПереопределяемый в новом или существующем расширении:
5. В режиме Предприятие создаем новый профиль или в существующем профиле добавляем новую роль. Естественно в профиле должны заданы ограничения доступа:
6. Добавляем в права пользователя профиль созданный в п.5 и выбираем группы доступа контрагентов. Проверяем и. не работает.
После длительного копания в потрохах RLS, выяснил, что основной структурой данных на которые опираются дополнительные условия в запросах является регистр сведений ТаблицыГруппДоступа. Этот регистр описывает как накладывать условия. Измерение (Таблица) этого РС является ссылкой на Справочник.ИдентификаторыОбъектовМетаданных и в моем случае для нового документа записей не содержалось. Сам справочник оказался заполнен новым документом.
Были испробованы несколько вариантов заполнения:
Запуск предприятия с ключом обновления.
Запуск Регламентного задания ЗаполнениеДанныхДляОграниченияДоступа.
Запуск в лоб (своей обработке) кода: УправлениеДоступомСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации().
Ничего не сработало. После долгих поисков было обнаружено, что регистр сведений ПраваРолей, для НовогоОбъекта тоже не заполнены. Решение было в вызове двух служебных процедур (во внешней обработке):
Кто найдет более простое решение для заполнения указанных регистров сведений, пишите в комментариях.
- Главная
- Программирование 1С
- 1С. Печать из формы внешней обработки, вывод табличного документа в общую форму "Печать документов" посредством БСП.
1С. Печать из формы внешней обработки, вывод табличного документа в общую форму "Печать документов" посредством БСП.
Изменение существующих или создание новых печатных форм – задача довольно распространённая. Как правило, в таких случаях создаётся внешняя печатная форма и подключается через стандартную подсистему дополнительных отчётов и обработок. Однако, иногда возникают задачи, в которых печатная форма должна формироваться с учётом данных, вводимых пользователями непосредственно перед печатью. То есть, сначала должна открыться форма, в которую пользователь вводит данные, и только потом выполняется команда "Печать".
Допустим, нам нужно создать печатную форму некой справки, часть данных которой вводятся в форме перед печатью. Кнопка "Печать" должна располагаться на форме.
Создаём внешнюю обработку. В модуле обработки, в функции СведенияОВнешнейОбработке () , устанавливаем параметры регистрации внешней обработки.
Обычно для внешних печатных форм параметру "Вид" присваивается значение "Печатная форма", но так как у нас сначала должна открываться форма, то устанавливаем значение "Дополнительная обработка".
В этой же функции СведенияОВнешнейОбработке () при обращении к процедуре ДобавитьКоманду () для внешних печатных форм в параметр "Использование" обыкновенно передаётся значение "ВызовСерверногоМетода" или "ВызовКлиентскогоМетода". Здесь же мы укажем значение "ОткрытиеФормы".
В итоге функция будет выглядеть так:
Создаём макет печатной формы.
Далее создаём основную форму обработки и необходимые реквизиты формы. Создаём и размещаем на форме команду "Печать". Формировать табличный документ для печати будем в обработчике этой команды. В зависимости от того, какие данные требуются для печатной формы, организовываем заполнение табличного документа либо на клиенте, либо на сервере. В данном примере заполняем на сервере и затем возвращаем табличный документ на клиент.
Итак, в модуле формы:
Табличный документ сформирован, осталось вывести его для печати в предназначенную для этого общую форму "Печать документов". Сделаем это с помощью стандартных механизмов БСП.
Дополним обработчик команды "Печать":
Теперь в результате выполнения команды "Печать" из формы нашей внешней обработки, табличный документ будет выводиться в форму "Печать документов", которая предоставляет удобный интерфейс для печати:
- 1С
- Управляемые формы
- Обработки
- Внешняя печатная форма
- Печать
- Библиотека стандартных подсистем (БСП)
Комментарии
Простите, а как получить данные того объекта, к которому будет привязана эта форма?
Печатная форма же должна заполняться данными из документа или справочника, к которому привязана.
Реально работающий пример в отличие от других советов. Большое спасибо, у меня наконец все получилось .
- Главная
- Программирование 1С
- 1C. Добавляем новый документ в типовую конфигурацию, получаем две кнопки Создать на основании. Как убрать лишнюю.
1C. Добавляем новый документ в типовую конфигурацию, получаем две кнопки Создать на основании. Как убрать лишнюю.
Нехитрое дело – добавить в типовую конфигурацию, например "1С ERP Управление предприятием 2", новый документ (назовём его "Запрос цен") и настроить его так, чтобы он создавался на основании типового документа, скажем "Заказ материалов в производство".
Однако, подводные камни всё-таки обнаруживаются. На форме документа "Заказ материалов в производство" появилось две кнопки "Создать на основании". Одна типовая, на рисунке она слева, а другая образовалась после добавления нового документа. При нажатии этой кнопки появляется список из единственного, вновь добавленного документа. Если же нажать штатную кнопку, то открывается список из нескольких типовых документов, среди которых, увы, нет нашего, добавленного. Возникает логичное желание перенести команду создания нового документа из правой кнопки в левую.
Для того, чтобы перенести команду в список штатной кнопки сделаем следующее:
В модуле менеджера документа "Заказ материалов в производство" есть процедура ДобавитьКомандыСозданияНаОсновании . Добавим в неё вызов функции, которую позже напишем в модуле менеджера документа "Запрос цен".
Добавляем функцию в модуль менеджера документа "Запрос цен":
В этой функции мы указали обработчик, расположенный в общем модуле дкВводНаОснованииКлиент . В типовой конфигурации подобные обработчики находятся в общем модуле ВводНаОснованииКлиент , но чтобы не изменять штатный модуль, был создан другой, с префиксом.
В общем модуле дкВводНаОснованииКлиент создаём функцию обработчика, которая откроет нам форму создаваемого документа:
Таким образом мы добавили наш документ в список штатной кнопки "Создать на основании". Осталось убрать лишнюю кнопку на форме документа "Заказ материалов в производства". Делается это в форме документа "Заказ материалов в производство" в левом верхнем фрейме, на вкладке "Командный интерфейс". Снимаем флаги "Видимость" и "Автовидимость" для документа "Запрос цен".
Читайте также:
- Сотрудник уволен без компенсаций и удержаний в текущем расчетном месяце 1с зуп ошибка
- Подождите пока завершится удаление или изменение программы windows 10
- Не удается запустить microsoft outlook не удается открыть окно outlook
- Перерасчет налоговой базы усн в 1с 8 при продаже имущества менее 3 лет
- Приоритет загрузки в bios gigabyte