Подбор ФормаВыбора - проблема

1. vertkov2010 3 09.11.12 04:33 Сейчас в теме
Здравствуйте
Имеется конфигурация Розница 1.0 Платформа 8.2
Документ ВводОстатковПоНакопительнымСкидкам
В документе отсутствует кнопка подбора информационных карт. Все делается через "+". "+" - очень неудобно сделано, когда клиентов очень много и по всем необходимо внести сумму накопления, также форма выбора при выборе информационной карты закрывается(это было исправлено).
В других документах при выборе позиции из подбора она добавляется в табличную часть под номером 1, выбираешь 2 позицию (подбор не закрывается) и в табличной части появляется строчка 2.
Подскажите пожалуйста как это можно организовать в документе ВводОстатковПоНакопительнымСкидкам при нажатии на "+"
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
16. valafan 120 15.11.12 09:20 Сейчас в теме
(15) vertkov2010,
Процедура ОстаткиДисконтнаяКартаНачалоВыбора(Элемент, СтандартнаяОбработка)
	//УправлениеИнформационнымиКартами.НачалоВыбораИнформационнойКарты(Элемент, Перечисления.ТипыИнформационныхКарт.Дисконтная, СтандартнаяОбработка);
	СтандартнаяОбработка = Ложь;
	ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, Элемент);
	ФормаВыбора.РежимВыбора = Истина;
	ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
	ФормаВыбора.МножественныйВыбор = Истина;
	ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(Перечисления.ТипыИнформационныхКарт.Дисконтная);
	ФормаВыбора.Открыть();
КонецПроцедуры

Процедура ОстаткиДисконтнаяКартаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	Если Не ЗначениеЗаполнено(Элемент.Значение) Тогда
		Элемент.Значение = ВыбранноеЗначение.Получить(0);
	Иначе
		Строка = Остатки.Добавить();
		Строка.ДисконтнаяКарта = ВыбранноеЗначение.Получить(0);
	КонецЕсли;
КонецПроцедуры
Показать

не забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vertkov2010 3 09.11.12 04:33 Сейчас в теме
Получается нашел что вызывается при нажатии на "+". т.е УправлениеИнформационнымиКартами.НачалоВыбораИнформационнойКарты(Элемент, Перечисления.ТипыИнформационныхКарт.Дисконтная, СтандартнаяОбработка);
3. vertkov2010 3 09.11.12 04:33 Сейчас в теме
ЗакрыватьПриВыборе = Ложь - у меня используется. Окно подбора не закрывается, но и 2,3,4 и т.д строчки не создаются при выборе разных карт в подборе
4. vertkov2010 3 09.11.12 04:34 Сейчас в теме
вот процедура, которую нашел
Процедура НачалоВыбораИнформационнойКарты(ЭлементФормы, ТипКарты, СтандартнаяОбработка) Экспорт

СтандартнаяОбработка = Ложь;

ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, ЭлементФормы);
ФормаВыбора.ПараметрВыборГруппИЭлементов = ЭлементФормы.ВыборГруппИЭлементов;

Если ТипЗнч(ТипКарты) = Тип("СписокЗначений") Тогда
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = ТипКарты;

ИначеЕсли ТипЗнч(ТипКарты) = Тип("Массив") Тогда
СписокТиповКарт = Новый СписокЗначений();
СписокТиповКарт.ЗагрузитьЗначения(ТипКарты);
ФормаВыбора.МножественныйВыбор = Истина;

ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Использование = Истина;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Значение = СписокТиповКарт;

Иначе
ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(ТипКарты);

КонецЕсли;

ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ТипКарты.Доступность = Ложь;
Если НЕ ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Неопределено Тогда
ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ЭлементФормы.Значение;
КонецЕсли;
ФормаВыбора.РежимВыбора = Истина;
ФормаВыбора.ЗакрыватьПриВыборе = Ложь;


ФормаВыбора.Открыть();

КонецПроцедуры // НачалоВыбораИнформационнойКарты()
5. vertkov2010 3 09.11.12 04:34 Сейчас в теме
Переделав код на:

СтандартнаяОбработка = Ложь;
СтрокаОстатки = Остатки.Добавить();
СтрокаОстатки.Остатки = ВыбранноеЗначение;
ЭлементыФормы.Остатки.ТекущаяСтрока = СтрокаОстатки;


При выборе 1,2,3 значений пишет:
{Документ.ВводОстатковПоНакопительнымСкидкам.Форма.ФормаДокумента.Форма(566)}: Поле объекта не обнаружено (Остатки)

СтрокаОстатки.Остатки = ВыбранноеЗначение;


И в табличную часть попадают пустые строчки и также появляется та ошибка
6. vertkov2010 3 09.11.12 04:35 Сейчас в теме
Создал новую тему здесь так как на forum.mista.ru никто не может ничего подсказать
7. insurgut 208 09.11.12 08:16 Сейчас в теме
Зачем вам программное заполнение тогда? Уберите всякий код просто - нажали Ins - появилась новая строка. Встаем на дисконт - провели карточку (автоматом должен туда улететь код карты + Enter если оборудование у вас правильно настроено).
8. vertkov2010 3 09.11.12 09:11 Сейчас в теме
(7) insurgut, мне необходимо заполнить документ ВводОстатковПоНакопительнымСкидкам накопленными суммами у каждого контрагента. причем тут ввод новой карты
10. insurgut 208 09.11.12 10:12 Сейчас в теме
(8) vertkov2010, сорри, я думал вы формы подпора открываете - и карту проводите :)

Слушайте - ну в рамках стандартного подбора вам ничего не мешает удерживая клавиши Shift или Ctrl выделить сразу несколько дисконтных карт и нажать кнопку Выбрать. Все должно заполнится как надо.
9. olbu 09.11.12 09:58 Сейчас в теме
Нужно ковырять процедуру - ОбработкаВыбора, там прописан механизм добавления строк в ТЧ.
12. vertkov2010 3 09.11.12 11:50 Сейчас в теме
(9) olbu, вот в чем как раз и проблема этой процедуры нет, так как я хочу вызвать форму выбора, а там нет ОбработкиВыбора. Я и обратился с помощью помогите мне ее написать , так как все мои попытки плохи
14. olbu 09.11.12 11:58 Сейчас в теме
(12) vertkov2010,
К сожалению "конфигурация Розница 1.0" - у меня нет... Не смогу Вам помочь более предметно... тк нужно смотреть на модули и при создании/редактировании кода тестировать и выявлять ошибки...
11. olbu 09.11.12 10:23 Сейчас в теме
Насколько я понял, как раз у этого дока и нет стандартного подбора...
13. vertkov2010 3 09.11.12 11:50 Сейчас в теме
15. vertkov2010 3 15.11.12 08:08 Сейчас в теме
вопрос еще актуальный
16. valafan 120 15.11.12 09:20 Сейчас в теме
(15) vertkov2010,
Процедура ОстаткиДисконтнаяКартаНачалоВыбора(Элемент, СтандартнаяОбработка)
	//УправлениеИнформационнымиКартами.НачалоВыбораИнформационнойКарты(Элемент, Перечисления.ТипыИнформационныхКарт.Дисконтная, СтандартнаяОбработка);
	СтандартнаяОбработка = Ложь;
	ФормаВыбора = Справочники.ИнформационныеКарты.ПолучитьФормуВыбора(, Элемент);
	ФормаВыбора.РежимВыбора = Истина;
	ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
	ФормаВыбора.МножественныйВыбор = Истина;
	ФормаВыбора.СправочникСписок.Отбор.ТипКарты.Установить(Перечисления.ТипыИнформационныхКарт.Дисконтная);
	ФормаВыбора.Открыть();
КонецПроцедуры

Процедура ОстаткиДисконтнаяКартаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	Если Не ЗначениеЗаполнено(Элемент.Значение) Тогда
		Элемент.Значение = ВыбранноеЗначение.Получить(0);
	Иначе
		Строка = Остатки.Добавить();
		Строка.ДисконтнаяКарта = ВыбранноеЗначение.Получить(0);
	КонецЕсли;
КонецПроцедуры
Показать

не забудьте определить процедуру ОстаткиДисконтнаяКартаОбработкаВыбора для соответствующего события поля ДисконтнаяКарта
Оставьте свое сообщение

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