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

Хранилище

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

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



> Выбор значения реквизита из нескольких видов документов          
vadim007 Подменю пользователя
сообщение 13.08.12, 15:46
Сообщение #1

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

В общем, на форме есть реквизит неопределенного типа, в котором будут храниться ссылки на документы из журнала Складские.
Как при нажатии на кнопку выбора на таком реквизите получить список (диалог) выбора документов в стиле журнала Складские?

igmig65 Подменю пользователя
сообщение 13.08.12, 18:35
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

Сделайте реквизит недоступным, а просто рядом создайте кнопку, и уже в ней пропишите процедуру, в которой опишите алгоритм заполнения вашего реквизита, можно ч-з ОткрыитПодбор(...), можно ч-з ОткрытьФорму, можно с-з Выбрать(...). Все зависит от конечного результата, который вы хотите получить.
Цитата(vadim007)
есть реквизит неопределенного типа, в котором будут храниться ссылки на документы из журнала Складские.

Зачем неопр.типа, скорей всего вам лучше сделать список, или поле со списком, а кнопкой заполнять этот список нужными доками.

Сообщение отредактировал igmig65 - 13.08.12, 18:38

vadim007 Подменю пользователя
сообщение 14.08.12, 7:36
Сообщение #3

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Немного расширю пояснение: я сейчас использую следующий вызов
ОткрытьПодбор("Журнал.Складские",,Контекст,0);

Журнал открывается, по двойному клику на строке журнала (при выборе) журнал закрывается, но вызова процедуры ОбработкаПодбора(..) не происходит.
Почему?

Стрелок Подменю пользователя
сообщение 14.08.12, 7:44
Сообщение #4

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

Цитата(vadim007 @ 14.08.12, 8:36) *
Немного расширю пояснение: я сейчас использую следующий вызов
ОткрытьПодбор("Журнал.Складские",,Контекст,0);

Журнал открывается, по двойному клику на строке журнала (при выборе) журнал закрывается, но вызова процедуры ОбработкаПодбора(..) не происходит.
Почему?


Форма.ВыполнитьВыбор(<?>);
Синтаксис:
Форма.ВыполнитьВыбор(<Знач>)
Назначение:
Осуществляет выбор в форме, открытой для подбора или выбора значения (аналогично интерактивному двойному клику в подборе).
Параметры:
<Знач> - значение, которое выбирается в форме, открытой для подбора или выбора значения.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.

Процедура ПриВыбореСтроки()
КонецПроцедуры
Синтаксис:
ПриВыбореСтроки()
Назначение:
Предопределенная процедура при выборе строки списка.
Замечание:
Режим обработки выбора строки (двойной щелчок мыши или клавиша Enter) предопределенной процедурой ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журнала проводок при помощи метода Форма.ОбработкаВыбораСтроки(1). Данная процедура может располагаться только в программном модуле формы.


Signature
Программист 1С - любимчик бухгалтеров

vadim007 Подменю пользователя
сообщение 14.08.12, 7:48
Сообщение #5

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Удалось победить с помощью процедуры ОбработкаВыбораЗначения(..).
Так что получается:
- при работе с подбором для справочников система вызывает процедуру ОбработкаПодбора(..)
- при работе с подбором для журналов система вызывает процедуру ОбработкаВыбораЗначения(..)
Странно...

Cthulhu Подменю пользователя
сообщение 17.08.12, 17:14
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

Цитата(vadim007 @ 14.08.12, 8:48) *
Удалось победить с помощью процедуры ОбработкаВыбораЗначения(..).
Так что получается:
- при работе с подбором для справочников система вызывает процедуру ОбработкаПодбора(..)
- при работе с подбором для журналов система вызывает процедуру ОбработкаВыбораЗначения(..)
Странно...

Не странно. Потому что совсем все не так. Не следует путать "выбор" с "подбором" - это, как говорят в Одессе, "две большие разницы".

При нажатии на кнопку выбора значения срабатывают:
1) ПриНачалеВыбораЗначения - перед началом открытия формы для выбора (стандартной формы списка для агрегатных данных)
2) ОбработкаВыбораЗначения - при завершении выбора (без отказа от выбора).

При программном(!) вызове системной процедуры "ОткрытьПодбор" - открывается указанная в параметрах форма (вообще, в принципе, любая - прикольно, можно даже форму документа открыть или обработки; для агрегатных данных открывается указанная форма списка или стандартная). Если в такой форме списка выполнить выбор - вызывается процедура ОбработкаПодбора модуля формы, из которой был открыт подбор.

В вашем случае "более идеальным" было бы использование следующего приема (прием "подмена штатной формы выбора").
1. Не открывать никаких подборов.
2. В процедуре ПриНачалеВыбораЗначения:
2.1. Обнулить флаг стандартной обработки (второй параметр процедуры).
2.2. Принудительно открыть для выбора нужную форму нужного журнала.\
При этом после выбора система отработает точно так, как будто вы выполнили штатный выбор (не путать с подбором!) - получит выбранное значение "куда надо" и передаст управление в ОбработкаВыбораЗначения.

added:
п.2.2. - "Принудительно открыть для выбора нужную форму нужного журнала" - в смысле программно, тут же, с помощью "ОткрытьФорму" - она откроется в режиме выбогра значения. wink.gif

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

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

Удалось победить:
Процедура ПриНачалеВыбораЗначения( ид, фл )
    фл = 0;
    ОткрытьПодбор( "Журнал.Складские" );
КонецПроцедуры

Процедура ОбработкаВыбораЗначения( зн )
    Форма.Документ.УстановитьТип( зн );
КонецПроцедуры


Пример: [необходимо зарегистрироваться для просмотра ссылки] (82 944 байт) - фор

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

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

Цитата(xxc @ 18.08.12, 13:52) *
Удалось победить:

читайте внимательнее. правильнее не "открытьподбор", но "открытьформу".

added:
и тогда не нужно никакой явной установки значения реквизита в "обработкавыборазначения" - само отработает так, как будто форма выбора просто подменена.

Cthulhu Подменю пользователя
сообщение 18.08.12, 22:36
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

added:
не, я неправ. работает - не трогай, Ok.

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


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

 

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