Здравствуйте
Имеется конфигурация Розница 1.0 Платформа 8.2
Документ ВводОстатковПоНакопительнымСкидкам
В документе отсутствует кнопка подбора информационных карт. Все делается через "+". "+" - очень неудобно сделано, когда клиентов очень много и по всем необходимо внести сумму накопления, также форма выбора при выборе информационной карты закрывается(это было исправлено).
В других документах при выборе позиции из подбора она добавляется в табличную часть под номером 1, выбираешь 2 позицию (подбор не закрывается) и в табличной части появляется строчка 2.
Подскажите пожалуйста как это можно организовать в документе ВводОстатковПоНакопительнымСкидкам при нажатии на "+"
Имеется конфигурация Розница 1.0 Платформа 8.2
Документ ВводОстатковПоНакопительнымСкидкам
В документе отсутствует кнопка подбора информационных карт. Все делается через "+". "+" - очень неудобно сделано, когда клиентов очень много и по всем необходимо внести сумму накопления, также форма выбора при выборе информационной карты закрывается(это было исправлено).
В других документах при выборе позиции из подбора она добавляется в табличную часть под номером 1, выбираешь 2 позицию (подбор не закрывается) и в табличной части появляется строчка 2.
Подскажите пожалуйста как это можно организовать в документе ВводОстатковПоНакопительнымСкидкам при нажатии на "+"
По теме из базы знаний
- Тюнинг типовых конфигураций 1с 8.1/8.2 (уже 7 примеров, обновлено 14.03.2013)
- Допиливаем форму выбора серий номенклатуры для отображения остатков
- СКД - отбор значений. Форма подбора подчиненных значений при выборе нескольких Владельцев
- Загрузка списка значений в стандартных отчетах (Обычное приложение)
- Форма выбора с отбором. Пять вариантов настройки отбора
Найденные решения
(15) vertkov2010,
не забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Процедура ОстаткиДисконтнаяКартаНачалоВыбора(Элемент, СтандартнаяОбработка)
//УправлениеИнформационнымиКартами.НачалоВыбораИнформационнойКарты(Элемент, Перечисления.ТипыИнформационныхКарт.Дисконтная, СтандартнаяОбработка);
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, Элемент);
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.МножественныйВыбор = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(Перечисления.ТипыИнформационныхКарт.Дисконтная);
ФормаВыбора.Открыть();
КонецПроцедуры
Процедура ОстаткиДисконтнаяКартаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Не ЗначениеЗаполнено(Элемент.Значение) Тогда
Элемент.Значение = ВыбранноеЗначение.Получить(0);
Иначе
Строка = Остатки.Добавить();
Строка.ДисконтнаяКарта = ВыбранноеЗначение.Получить(0);
КонецЕсли;
КонецПроцедуры
Показатьне забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
вот процедура, которую нашел
Процедура НачалоВыбораИнформационнойКарты(ЭлементФормы, ТипКарты, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, ЭлементФормы);
ФормаВыбора.ПараметрВыборГруппИЭлементов = ЭлементФормы.ВыборГруппИЭлементов;
Если ТипЗнч(ТипКарты) = Тип("СписокЗначений") Тогда
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = ТипКарты;
ИначеЕсли ТипЗнч(ТипКарты) = Тип("Массив") Тогда
СписокТиповКарт = Новый СписокЗначений();
СписокТиповКарт.ЗагрузитьЗначения(ТипКарты);
ФормаВыбора.МножественныйВыбор = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = СписокТиповКарт;
Иначе
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(ТипКарты);
КонецЕсли;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ТипКарты.Доступность = Ложь;
Если НЕ ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Неопределено Тогда
ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ЭлементФормы.Значение;
КонецЕсли;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.Открыть();
КонецПроцедуры // НачалоВыбораИнформационнойКарты()
Процедура НачалоВыбораИнформационнойКарты(ЭлементФормы, ТипКарты, СтандартнаяОбработка) Экспорт
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, ЭлементФормы);
ФормаВыбора.ПараметрВыборГруппИЭлементов = ЭлементФормы.ВыборГруппИЭлементов;
Если ТипЗнч(ТипКарты) = Тип("СписокЗначений") Тогда
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = ТипКарты;
ИначеЕсли ТипЗнч(ТипКарты) = Тип("Массив") Тогда
СписокТиповКарт = Новый СписокЗначений();
СписокТиповКарт.ЗагрузитьЗначения(ТипКарты);
ФормаВыбора.МножественныйВыбор = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = СписокТиповКарт;
Иначе
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(ТипКарты);
КонецЕсли;
ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ТипКарты.Доступность = Ложь;
Если НЕ ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Неопределено Тогда
ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ЭлементФормы.Значение;
КонецЕсли;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.Открыть();
КонецПроцедуры // НачалоВыбораИнформационнойКарты()
Переделав код на:
СтандартнаяОбработка = Ложь;
СтрокаОстатки = Остатки.Добавить();
СтрокаОстатки.Остатки = ВыбранноеЗначение;
ЭлементыФормы.Остатки.ТекущаяСтрока = СтрокаОстатки;
При выборе 1,2,3 значений пишет:
{Документ.ВводОстатковПоНакопительнымСкидкам.Форма.ФормаДокумента.Форма(566)}: Поле объекта не обнаружено (Остатки)
СтрокаОстатки.Остатки = ВыбранноеЗначение;
И в табличную часть попадают пустые строчки и также появляется та ошибка
СтандартнаяОбработка = Ложь;
СтрокаОстатки = Остатки.Добавить();
СтрокаОстатки.Остатки = ВыбранноеЗначение;
ЭлементыФормы.Остатки.ТекущаяСтрока = СтрокаОстатки;
При выборе 1,2,3 значений пишет:
{Документ.ВводОстатковПоНакопительнымСкидкам.Форма.ФормаДокумента.Форма(566)}: Поле объекта не обнаружено (Остатки)
СтрокаОстатки.Остатки = ВыбранноеЗначение;
И в табличную часть попадают пустые строчки и также появляется та ошибка
Зачем вам программное заполнение тогда? Уберите всякий код просто - нажали Ins - появилась новая строка. Встаем на дисконт - провели карточку (автоматом должен туда улететь код карты + Enter если оборудование у вас правильно настроено).
(8) vertkov2010, сорри, я думал вы формы подпора открываете - и карту проводите :)
Слушайте - ну в рамках стандартного подбора вам ничего не мешает удерживая клавиши Shift или Ctrl выделить сразу несколько дисконтных карт и нажать кнопку Выбрать. Все должно заполнится как надо.
Слушайте - ну в рамках стандартного подбора вам ничего не мешает удерживая клавиши Shift или Ctrl выделить сразу несколько дисконтных карт и нажать кнопку Выбрать. Все должно заполнится как надо.
(15) vertkov2010,
не забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Процедура ОстаткиДисконтнаяКартаНачалоВыбора(Элемент, СтандартнаяОбработка)
//УправлениеИнформационнымиКартами.НачалоВыбораИнформационнойКарты(Элемент, Перечисления.ТипыИнформационныхКарт.Дисконтная, СтандартнаяОбработка);
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, Элемент);
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
ФормаВыбора.МножественныйВыбор = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(Перечисления.ТипыИнформационныхКарт.Дисконтная);
ФормаВыбора.Открыть();
КонецПроцедуры
Процедура ОстаткиДисконтнаяКартаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Не ЗначениеЗаполнено(Элемент.Значение) Тогда
Элемент.Значение = ВыбранноеЗначение.Получить(0);
Иначе
Строка = Остатки.Добавить();
Строка.ДисконтнаяКарта = ВыбранноеЗначение.Получить(0);
КонецЕсли;
КонецПроцедуры
Показатьне забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот