1с создать на основании доступность
Потребовалось на основе документа создать другой. Есть стандартный механизм в свойствах добавляешь подчинённый док и всё, появиться кнопка на форме. Так работает на обычных формах. А на управляемой почему то не появляется кто подскажет что нужно сделать?
свойство Использовать стандартные команды у документа установлено?
В командном интерфейсе формы проверьте наличие галок
Комплексная автоматизация, редакция 1.0 (1.0.6.1)(не типовая конечно)
(4) что то нашел команду вроде как создал как надо, но что то не так. с управляемой формой не работаю почти поэтому такие сложности. может кто мат часть скинет? почитаю
(10) может быть уже проверите наличие галок в командном интерфейсе формы?!
(11) захожу в командный там пусто. группа создать на основание пустая. почему так?
Проверьте контекстное меню. Возможно группа "создать на основании", в которую вы заходите не является системной. А заполняется програмно каким-то кодом. Пострайтесь его найти.
(10)конфу сохранял после того как добавил ввод на основании?
(13) там нету этого кода такого (14) конечно.. но даже на форме не отображается в конфигураторе.
Прям чувствую что то нужно просто тыкнуть и всё. критерий отбора уже сделал реквизит добавил.
Ниче нигде не нужно тыкать. Просто нужно добавить ввод на основании, остальное все само должно заработать. Команда в командном интерфейсе должна сама появится.
Сфоткай закладку ввод на основании свойств документа и командный интерфейс формы и выложи на нормальный обменник.
(19) В других документах на управляемых формах есть эта кнопка? Смотри как там сделано. В типовых (КА 2.0, ERP), вывод кнопок ввод на основании засунули в модуль менеджера, автоматом само ничего не выводится, может и у тебя также.
она не типовая обновлён на ЕГАИС - управляемая форма
(20) в том и дело что не нет в этой конфе больше управляемых форм с основанием. эту и то дорабатываю.
(24) в форме зайдите в Глобальные параметризуемые команды. Там есть нужное создание на основании?
(29) тогда нужно создавать собственную команду скорее всего. Всё-таки у вас только 1 документ на УФ, а не вся конфигурация.
а у командной панели на вкладке Элементы автозаполнение включено?
(30) я создал общую команду уже и там прописал открытие формы . но не знаю как привязать его нужному месту. или предлагаешь прям вообще отдельную кнопку сделать?
(32) эта общая команда должна появится в глобальных командах в форме. Ее надо перетащить в командный интерфейс.
форму открыл но в обработку заполнения не заходит . скорей всего по тому что без основания просто как код что ли
Вот у меня была подобная команда:
(39) это когда самому надо что-то заполнять, не було обработки заполнения.
По идее открыть с параметром можно так:
Ввод на основании используется в случаях, когда при создании нового объекта могут быть использованы данные уже существующего объекта. Ввод на основании может быть реализован для справочников, документов, планов видов характеристик, планов счетов, планов видов расчета и бизнес-процессов. В общем случае объект может быть создан на основании любого объекта из перечисленных выше, например, документ может быть создан на основании справочника.
Рассмотрим работу механизма ввода на основании на следующем примере: Организация оказывает услуги пассажирского такси. Заказы покупателей регистрируются в документе «Заказ». Заказ может быть формируется диспетчером. Документ «Заказ» содержит следующую информацию:
- имя клиента
- адрес клиента
- адрес откуда
- адрес куда
- время подачи
- желаемый класс автомобиля
- список желаемых опций
Имя клиента, его адрес и телефон хранятся в справочнике «Клиенты». В данном примере будет реализован ввод документа на основании справочника. С целью упрощения примера справочник будет только один - «Клиенты», вся остальная информация будет вводиться вручную.
Создание объектов конфигурации
Реализация
В свойствах документа «Заказ» перейдем на закладку «Ввод на основании»:
Нажмем кнопку «Редактировать элемент списка» и выберем из списка справочник «Клиенты»:
Далее запустим конструктор ввода на основании нажатием на кнопку "Конструктор ввода на основании":
В открывшемся окне нужно сопоставить поля справочника с реквизитами документа заказа. Это можно сделать, нажав кнопку «Заполнить выражения» и тогда система попытается сама определить, какие поля необходимо скопировать:
Поле адреса нужно сопоставлять вручную, выбрав поле «АдресОткуда» в нижней части, а затем двойным щелчком на реквизите «Адрес» в реквизитах объекта обоснования:
По нажатию «ОК» система генерирует следующий код в модуле документа «Заказ» в процедуре ОбработкаЗаполнения:
Процедура ОбработкаЗаполнения вызывается в ряде случаев, таких как ввод нового документа интерактивно и ввод на основании. В данном случае, если переменная ДанныеЗаполнения является ссылкой на справочник клиентов, выполняется заполнение реквизитов документа. Код обработчика можно модифицировать. Предположим, что клиенты чаще всего хотят подачу такси в течение 15-20 минут. Тогда в код обработчика можно добавить инициализацию реквизита «ВремяПодачи». Также удалим комментарии, созданные конструктором:
Запустим приложение в режиме отладки и проверим, как работает ввод на основании. Добавим пару записей в справочник клиентов:
Откроем одну из них. В окне будет доступна кнопка «Создать на основании», по нажатию которой откроется список с опцией выбора «Заказ»:
При выборе «Заказ» система создает пустой документ и заполняет поля в процедуре ОбработкаЗаполнения:
Сохраним документ и убедимся, что документ был успешно создан, открыв его из спиcка документов заказа:
Теперь предположим, что у клиентов могут быть опции, которые всегда присутствуют в заказе данного клиента. Например, «Некурящий водитель». Тогда их можно задавать в справочнике клиентов и копировать в документ заказа. Расширим справочник «Клиенты» табличной частью «Опции»:
Теперь необходимо модифицировать процедуру ОбработкаЗаполнения документа. Это можно было бы сделать через конструктор, но тогда процедура обработки будет перезаписана, поэтому добавим код копирования табличной части вручную:
Запустим конфигурацию в режиме отладки и посмотрим, что получилось. Добавим опции клиенту:
Сохраним данные и создадим заказ на основании записи справочника:
Таким образом, данные табличной части были успешно скопированы в заказ. Для этого простого примера реализацию ввода на основании можно считать законченной.
Рассмотрим простой пример программного ввода документа в 1С на основании. Допустим необходимо после проведения приходного документа «Приход» создать расходный документ «Расход» на основании данных полученных из приходного документа.
Простое создание на основании стандартным способом платформы 1С
Где указать с кем он связан:
Должна получиться следующая картина:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
И прописать программный код заполнения. Пример кода:
Конструктор ввода на основании
Создание документа после записи первого документа с последующей записью созданного
Для реализации такой задачи можно использовать метод объекта Заполнить(), в параметры которого необходимо будет передать данные заполнения из документа прихода. Метод инициирует событие ОбработкаЗаполнения() и вызов процедуры-обработчика в модуле объекта документа «Расход».
Создание объекта после записи с открытием управляемой формы
Для программного создания документа в 1С с открытием управляемой формы пользователю можно использовать функцию ОткрытьФорму(), в параметры которой можно передавать данные для заполнения.
Добавление расширения в конфигурацию
Работа с расширением
Мы добавили новое расширение и теперь можно приступать к работе с ним.
Для этого в списке расширение двойным кликом или с помощью контекстного меню откроем конфигурацию нашего расширения
На момент написания статьи, расширения конфигурации 1С не поддерживают стандартный механизм ввода на основании, поэтому нам придется описать его вручную, приступим.
Переходим с свойства общей нашей общей команды. В свойствах нам необходимо указать группу, в которую входит команда по умолчанию и тип параметра команды.
Переходим в модуль команды и описываем обработку нашей глобальной команды:
На этом работа с глобальной командой завершена.
В добавленной процедуре напишем простой код для заполнения нашего документа по основанию
Так же необходимо дать права обычным пользователям на работу с нашей общей командой. Для этого возьмем роль, которая есть у каждого пользователя, добавим ее в наше расширение и разрешим просмотр нашей команды.
На этом разработка реализации ввода на основании в 1С при помощи расширения конфигурации завершено, можем запустить конфигурацию и проверить, что проделали данную работу не зря.
Читайте также: