Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Подбор Номенклатуры , Отображение склада          
MevMix Подменю пользователя
сообщение 03.06.11, 8:52
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!!!
Конфиг мой. 1с8.1
В документах осуществляю подбор номенклатуры
При нажатие на кнопку подбор открывается форма выбора справочника номенклатура.

На форме выбора спр Номенклатура есть поле ввода Склад
Хотелось бы чтоб при открытии этой формы выбора
брался склад из документа, не зависимо какой док открываешь
Реализации или Перемещения или Поступления товаров

как это возможно реализовать
Спасибо!!!

Batchir Подменю пользователя
сообщение 03.06.11, 9:00
Сообщение #2

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Передавайте в форму ссылку на документ, проверяйте наличие реквизита "Склад" (или как он у Вас там называется) в метаданных документа и при открытии формы считывайте если реквизит имеется в документе

MevMix Подменю пользователя
сообщение 03.06.11, 9:19
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Batchir @ 03.06.11, 9:00) *
Передавайте в форму ссылку на документ, проверяйте наличие реквизита "Склад" (или как он у Вас там называется) в метаданных документа и при открытии формы считывайте если реквизит имеется в документе


Можно Вас попросить с примером
немного слжновато для новичка

Batchir Подменю пользователя
сообщение 03.06.11, 10:53
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

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

5_kopeek Подменю пользователя
сообщение 03.06.11, 11:05
Сообщение #5

Ветеран
*******
Женщине-одинэснику
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0

Batchir, по-моему, первое описание алгоритма было гораздо проще biggrin.gif

MevMix Подменю пользователя
сообщение 03.06.11, 11:25
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо вопрос решен
при нажатии на кнопку п
одбор
ФормаПодбора.СкладОстатки = Склад;


Тему можно закрывать

Batchir Подменю пользователя
сообщение 03.06.11, 12:02
Сообщение #7

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1443 раз
Рейтинг: 0

Ну то тупой алгоритм "что б работало", а если в дальнейшем будет дорабатываться (а оно таки будет), то лучше сразу делать так как будет легче.
А "проще" - я немного перепутал с "подробнее"

Цитата
Хотелось бы чтоб при открытии этой формы выбора
брался склад из документа, не зависимо какой док открываешь

А как же это? Если пишете универсальную обработку подбора в документ, то она должна быть универсальной.
Цитата
ФормаПодбора.СкладОстатки = Склад;

Выдаст ошибку, если у документа нет реквизита Склад. А в будущем возможно понадобятся и другие передаваемые парметры в форму. так и будете добавлять реквизиты? Правильнее добавить структуру в качестве реквизита обработки и в неё передавать нужные данные.
Вы должны написать такую обработку что бы она вызывалась и отрабатывала с помощью вызова одной функции.

Перейдем тогда к примеру.
Опишите в общем модуле:
Процедура ОткрытьФормуПодбора(ДокОбъект, ФормаВладелец) ЭКСПОРТ
   ФормаПодбора = <получаем форму обработки подбора>
   ФормаПодбора.ПередаваемыеПараметры = ПолучитьСтрукктурудляПодбора(ДокОбъект);
   // в форму подбора также можно передать и форму владельца. Специально добавил дополнительный реквизит в форму
   ФормаПодбора.Открыть();
КонецПроцедуры

Функция ПолучитьСтрукктурудляПодбора(ДокОбъект)
   ПередаваемыеПараметры = Новый Структура;
   // дальше накидываем в структуру все параметры которые нам нужны, пока что это склад
   Возврат ПередаваемыеПараметры;
КонецФункции


В процедуре при открытии формы подбора анализируете переданные параметры и выполняете нужные действия

а при нажатии кнопки подбор в документах достаточно будет вставлять одну процедуру
ОткрытьФормуПодбора(ЭтотОбъект, ЭтаФорма);


для передачи данных из обработки подбора в форму документа используйте функцию Оповестить(<ИмяСобытия>, <Параметр>, <Источник>) .
В форме документа это будет обрабатываться в отдельном событии ОбработкаВыбора.


но собственно Вам решать: оставить как есть или делать сразу правильно.

Спасибо сказали: MevMix,

MevMix Подменю пользователя
сообщение 03.06.11, 15:05
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 23
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Batchir @ 03.06.11, 12:02) *
Ну то тупой алгоритм "что б работало", а если в дальнейшем будет дорабатываться (а оно таки будет), то лучше сразу делать так как будет легче.
А "проще" - я немного перепутал с "подробнее"


А как же это? Если пишете универсальную обработку подбора в документ, то она должна быть универсальной.

Выдаст ошибку, если у документа нет реквизита Склад. А в будущем возможно понадобятся и другие передаваемые парметры в форму. так и будете добавлять реквизиты? Правильнее добавить структуру в качестве реквизита обработки и в неё передавать нужные данные.
Вы должны написать такую обработку что бы она вызывалась и отрабатывала с помощью вызова одной функции.

Перейдем тогда к примеру.
Опишите в общем модуле:
Процедура ОткрытьФормуПодбора(ДокОбъект, ФормаВладелец) ЭКСПОРТ
   ФормаПодбора = <получаем форму обработки подбора>
   ФормаПодбора.ПередаваемыеПараметры = ПолучитьСтрукктурудляПодбора(ДокОбъект);
   // в форму подбора также можно передать и форму владельца. Специально добавил дополнительный реквизит в форму
   ФормаПодбора.Открыть();
КонецПроцедуры

Функция ПолучитьСтрукктурудляПодбора(ДокОбъект)
   ПередаваемыеПараметры = Новый Структура;
   // дальше накидываем в структуру все параметры которые нам нужны, пока что это склад
   Возврат ПередаваемыеПараметры;
КонецФункции


В процедуре при открытии формы подбора анализируете переданные параметры и выполняете нужные действия

а при нажатии кнопки подбор в документах достаточно будет вставлять одну процедуру
ОткрытьФормуПодбора(ЭтотОбъект, ЭтаФорма);


для передачи данных из обработки подбора в форму документа используйте функцию Оповестить(<ИмяСобытия>, <Параметр>, <Источник>) .
В форме документа это будет обрабатываться в отдельном событии ОбработкаВыбора.


но собственно Вам решать: оставить как есть или делать сразу правильно.



Спасибо Batchir
идея клевая, думал на этим что коряво написано
должно быть универсально,
но знаний не хватит для написания Вашего предложения, пока оставлю так как есть
потом буду думать как это решить
Спасибо

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 04.07.25, 14:16
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!