Ввод на основании любого объекта

22.03.13

Задачи пользователя - Адаптация типовых решений

Необходимо сделать ввод на основании записей регистра или целого пакета документов, но не хотите изменять типовую форму(добавляя кнопку). Возможно эта идея вам поможет

Немного поискав в истории не нашел ничего похожего. Возможно плохо искал.

Это только идея. Ее можно развивать дальше. но я ограничился простым механизмом.

Для управляемых форм можно придумать более изящное решение.

Проблема:

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

Описание идеи:

Платформа сама заполняет этот пункт меню из объектов, в которых указано что они вводятся на основании. Решил использовать его для создания программного списка создания на основании.

Что решил сделать:

1 Я решил добавить свой справочник "Дополнительный ввод на основании".

2 Для него указываю на основании каких объектов он должен создаваться

3 Добавляю предопределенные значения в справочник. Они означают конкретный вид Ввода на основании

4 Для справочника добавил табличную часть "Объекты". В ней указывается перечень видов объекта для которых используется заполнение. Используется как ограничение.

 

Если НЕ Предопределенный Тогда

        Отказ = Истина;

        Возврат;

КонецЕсли;

 

5 В обработке заполнения написал:

5.1 Выборку заполнения для конкретного объекта

 

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ РАЗЛИЧНЫЕ

| AVA_ДополнительныйВводНаОснованииОбъекты.Ссылка,

| AVA_ДополнительныйВводНаОснованииОбъекты.Ссылка.Наименование КАК Наименование

|ИЗ

| Справочник.AVA_ДополнительныйВводНаОсновании.Объекты КАК AVA_ДополнительныйВводНаОснованииОбъекты

|ГДЕ

| ТИПЗНАЧЕНИЯ(AVA_ДополнительныйВводНаОснованииОбъекты.ПустаяСсылкаОбъекта) = ТИПЗНАЧЕНИЯ(&Объект)";

Запрос.УстановитьПараметр("Объект", ДанныеЗаполнения);

Результат = Запрос.Выполнить();

Если Результат.Пустой() Тогда

Сообщить("Для данного вида объекта нет дополнительного ввода на основании", СтатусСообщения.Внимание);

Возврат;

КонецЕсли;

 

 5.2 Открыть форму выбора вида ввода на основании

 

Выборка = Результат.Выбрать();

спВвода = Новый СписокЗначений;

Пока Выборка.Следующий() Цикл

             спВвода.Добавить(Выборка.Ссылка, Выборка.Наименование);

КонецЦикла;

ВыборПунктаВводНаОсновании = спВвода.ВыбратьЭлемент("Что хотите ввести на основании?");

Если ВыборПунктаВводНаОсновании <> Неопределено Тогда

           ОсуществитьДополнительныйВводНаОсновании(ДанныеЗаполнения, ВыборПунктаВводНаОсновании.Значение);

КонецЕсли;

 

5.3 Ну и процедура обработки выбранного вида ввода на основании


Процедура ОсуществитьДополнительныйВводНаОсновании(ДанныеЗаполнения, ВидЗаполненияСсылка)


предСсылки = Справочники.AVA_ДополнительныйВводНаОсновании;

Если ВидЗаполненияСсылка = предСсылки.АС_ВременноЗамещающие Тогда

        ВременноЗамещающие_ВводНаОсновании(ДанныеЗаполнения);

КонецЕсли;


КонецПроцедуры


Процедура ВременноЗамещающие_ВводНаОсновании(ДанныеЗаполнения)


//Документ Кадровое пермещение

//Документ Прием на работу в организацию

//Документ Увольнение из организации

Форма = РегистрыСведений.АС_ВременноЗамещающие.ПолучитьФорму("ФормаГрупповогоДобавления");

Форма.Основание = ДанныеЗаполнения; Форма.Открыть();


КонецПроцедуры


Дополнительно для пользователей в ролях необходимо указать для данного справочника:

- Чтение

- Добавление

а то не хватит прав


Тут возможные ошибки, к примеру: если заполнение будет с сервера, то ни о каком открытии формы не может быть речи.

Возможны и другие ошибки. Это только идея. Возможно, кому-нибудь пригодится.

 


См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4605    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3038    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1643    dimanich70    8    

14

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2087    18    avmartynov    12    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2196    24    progmaster    7    

3
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AlexO 135 22.03.13 16:39 Сейчас в теме
(0)
Работают на обычных формах.

Не знаю никого, кто бы работал в УПП на управялемых формах.
Только тру-1сники на форумах :)
2. AlexO 135 22.03.13 16:44 Сейчас в теме
Или я не понял, или:
вы сделали только ОБОЩАЮЩУЮ кнопку, которую также будете переносить из релиза в релиз вручную. А по кнопке вполне можно было вызывать обработку (внешнюю причем).
И там - форму ввода на основании. А там - список, чего надо ввести.
Причем список - можно динамически формировать, в зависимости от того, какой док его вызвал.
Так зачем тут нужен еще один справочник? :)
4. BACbKA666 33 22.03.13 17:23 Сейчас в теме
(2) AlexO,
вы сделали только ОБОЩАЮЩУЮ кнопку, которую также будете переносить из релиза в релиз вручную. А по кнопке вполне можно было вызывать обработку (внешнюю причем).
И там - форму ввода на основании. А там - список, чего надо ввести.
Причем список - можно динамически формировать, в зависимости от того, какой док его вызвал.
Так зачем тут нужен еще один справочник? :)


Кнопка будет добавляться платформой, соответственно нет необходимости изменять типовую форму.
Вызов внешних обработок возможен только там, где этот механизм прикручен. Например заполнение табличной части(если изголяться).
А справочник нужен, чтобы появилась кнопка в меню "На основании"

Проведение по регистру какое отношение имеет к вводу на основании? Что на основании чего вводится?

Это приведен как пример. В конфигураторе для регистра сведений нельзя указать на основании какого документа может происходить заполнение записей.

Какой пункт и где заполняет платформа? Судя по цитате выше - у вас вводится на "основании документов - запись регистра".

Стандартный пункт меню на форме "Ввести на основании"
Возможно написал не очень понятно. С изложением мыслей беда. :)
7. AlexO 135 22.03.13 17:54 Сейчас в теме
(4)
Возможно написал не очень понятно. С изложением мыслей беда.

Ну да :)
Я теперь понял смысл работы - но, увы. 1С не обманешь :)
Невозможно использовать платформенное "вписывание на основании" только с одного конца (в данном случае - с конца справочника).
(платформенное - это под "синей стрелочкой" и в контекстном меню в списке).
Работать-то работает, но так, как я описал выше - шило на мыло: здесь получаем, но и все доки переобновляются, т.е. нет отвязки от обновления. А потому - нет и смысла: обновлять так или эдак.
Или я в форме впишу НаОсновании, или вот таким "типовым" образом.
3. AlexO 135 22.03.13 16:50 Сейчас в теме
На основании документов необходимо вводить запись в регистре. Ну франч соответственно сделал кнопку в меню Ввод на основании.

Проведение по регистру какое отношение имеет к вводу на основании? Что на основании чего вводится?
Платформа сама заполняет этот пункт меню из объектов, в которых указано что они вводятся на основании

Какой пункт и где заполняет платформа? Судя по цитате выше - у вас вводится на "основании документов - запись регистра".
5. Антон Ширяев 529 22.03.13 17:32 Сейчас в теме
(0) Идея отличная.
Думаю объединить в одном служебном справочнике с http://infostart.ru/public/155418/.
Главное при обновлении у каждого объекта не появляются лишние различия.
Некоторые добавляют регистр сведений подчиненный регистратору для получения новой кнопки в меню "Перейти", но этот регистр очень мешается при обновлении, так как по всем его регистратором вылезает различия в движениях.
6. AlexO 135 22.03.13 17:51 Сейчас в теме
Обломитесь, ребята :)
Как и для аналогичных "плясок" с документами НаОсновании - если вы впихнете ВО ВСЕ ДОКУМЕНТЫ свой справочник как "основание для этого документа", то вторым концом "палки" будет то, что она "стукнет" по каждому вписанному доку и впишется ему в поле "на основании" в свойствах, что вызовет цепную реакцию и обновление свойств и всякой связанных структур у доков.
8. AlexO 135 22.03.13 17:55 Сейчас в теме
А что такое вообще "Ввод н а основании" у справочников - я до сих не понимаю :)
Оно вообще зачем там нужно? Да еще и конструктор есть...опупеть... на основании дока заполняешь реквизиты элемента справочника..
9. AlexO 135 22.03.13 17:58 Сейчас в теме
Сделал сравнение с конфой поставщика. Отличий не выявил по основанию.
А вот почему не показывает сие отличие сравнение с конфой поставщика - это вопрос к 1С.
ЗДЕСЬ не показывает.
А при установке обновления - покажет. Здесь же свойства дока типового изменяются ("второй конец палки" :) ).
10. AlexO 135 22.03.13 18:13 Сейчас в теме
Ну и, как я и говорил всегда, Справочник - это недоделанная связка РегистрСведений+Документ.
Видимо, оттуда и "перехала" вкладка ВводНаОсновании :)
11. BACbKA666 33 23.03.13 21:39 Сейчас в теме
AlexO, Именно я использовал данную возможность, чтобы избежать сравнение форм на отличие. Так как при обновление типовой конфигурации с изменениями львиная доля времени уходит на сравнение форм. А данная возможность позволяет вынести некоторые кнопки за рамки типовой формы.
12. AlexO 135 25.03.13 15:54 Сейчас в теме
(11)
чтобы избежать сравнение форм на отличие

Видимо, у вас ну огромное количество уникальных нетиповых вводов на основании :)
13. dyak84 24.07.13 11:17 Сейчас в теме
Интересная обработка. как раз то что искал. Как появятся день обязательно скачаю. автору спасибо так держать.
14. gerasimov 08.11.17 07:58 Сейчас в теме
Спасибо за идею, пригодилось
Оставьте свое сообщение