Как добавить позицию характеристики номенклатуры в рмк

1. user2109808 25.11.24 11:53 Сейчас в теме
есть код который добавляет все нужное в рмк из подбора
&НаКлиенте
Процедура Подбор(Команда)
    //ПараметрыФормы = Новый Структура;
    //ПараметрыФормы.Вставить("", );
    Оповещение = Новый ОписаниеОповещения("ПодборЗаверщение", ЭтотОбъект);
    ОткрытьФорму("Обработка.РабочееМестоКассира.Форма.ФормаПодбора",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры


&НаСервереБезКонтекста
Функция ЗаполнитьСвойстваНоменклатуры(Номенклатура, ВидЦен)
    
    СвойстваНоменклатуры = Новый Структура();
    СвойстваНоменклатуры.Вставить("Номенклатура", Номенклатура);
    СвойстваНоменклатуры.Вставить("НоменклатураНаименование", "");
    СвойстваНоменклатуры.Вставить("Весовой", Ложь);
    СвойстваНоменклатуры.Вставить("Цена", 0);
    СвойстваНоменклатуры.Вставить("ЕдиницаИзмерения", Неопределено);
    СвойстваНоменклатуры.Вставить("СтавкаНДС", Неопределено);
    СвойстваНоменклатуры.Вставить("СтавкаНСП", Неопределено);
    СвойстваНоменклатуры.Вставить("ТипМаркировки", Неопределено);
    СвойстваНоменклатуры.Вставить("ПризнакПредметаРасчета", Неопределено); 
    СвойстваНоменклатуры.Вставить("ИспользоватьХарактеристики", Неопределено);
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    СправочникНоменклатура.Ссылка КАК Номенклатура,
        |    СправочникНоменклатура.Наименование КАК НоменклатураНаименование,
        |    СправочникНоменклатура.ПризнакПредметаРасчета КАК ПризнакПредметаРасчета,
        |    СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        |    СправочникНоменклатура.Весовой КАК Весовой,
        |    СправочникНоменклатура.СтавкаНДС КАК СтавкаНДС,
        |    СправочникНоменклатура.СтавкаНСП КАК СтавкаНСП,
        |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
        |    СправочникНоменклатура.ИспользоватьХарактеристики КАК ИспользоватьХарактеристики
        |ИЗ
        |    Справочник.Номенклатура КАК СправочникНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |                ,
        |                Номенклатура = &Номенклатура
        |                    И ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
        |        ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура
        |            И СправочникНоменклатура.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения
        |ГДЕ
        |    СправочникНоменклатура.Ссылка = &Номенклатура";
    Запрос.УстановитьПараметр("ВидЦен", ВидЦен);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда 
        ЗаполнитьЗначенияСвойств(СвойстваНоменклатуры, ВыборкаДетальныеЗаписи); 
    КонецЕсли;

    Возврат СвойстваНоменклатуры;

КонецФункции


&НаКлиенте
Процедура ПодборЗаверщение(Результат, ДополнительныеПараметры) Экспорт
    
    Если Результат = Неопределено Тогда
        Возврат;    
    КонецЕсли;  
    
    СтруктураПараметров = ЗаполнитьСвойстваНоменклатуры(Результат.Номенклатура, ВидЦен);
    СтруктураПараметров.Вставить("Количество", 1);   
    Если СтруктураПараметров.ИспользоватьХарактеристики = Истина Тогда
        ОткрытьФорму("Справочник.Номенклатура.Форма.РедактированиеХарактеристик",,,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
            
    Иначе 
        ДобавитьПозициюНоменклатуры(СтруктураПараметров);
    КонецЕсли;
        
    ПересчитатьДокументНаКлиенте();

КонецПроцедуры
Показать


и код с формы подбора

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
    ПарамтрыПодбора = Новый Структура; 
    ПарамтрыПодбора.Вставить("Номенклатура", ВыбраннаяСтрока);   
    Закрыть(ПарамтрыПодбора);
КонецПроцедуры  


не могу в процедуре ПодборЗаверщение "захватить" нужную х-ку чтобы перенести ее в рмк. характеристики здесь идут не отдельным справочником, а как реквизит, два. ИспользоватьХарактеристики - булево, хАРАКТЕРИСТИКИ - реквизит, переход на форму х-тик
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2109808 25.11.24 11:54 Сейчас в теме
фото
Прикрепленные файлы:
3. user2109808 25.11.24 11:59 Сейчас в теме
и еще. как в форму рмк передать что товар маркированный?
4. user2109808 26.11.24 07:07 Сейчас в теме
никто не хочет помогать( плак..плак...
5. user2107191 26.11.24 08:12 Сейчас в теме
Ну а при открытии формы характеристик - не хочешь сделать обратное оповещение с выбранным результатом? Или система сама должна догадаться зачем ты открывал и что собираешься с этим делать?
6. user2109808 26.11.24 08:19 Сейчас в теме
(5) Оповещение = Новый ОписаниеОповещения("", ЭтотОбъект)
это?
7. user1863362 26.11.24 08:23 Сейчас в теме
8. user2109808 26.11.24 11:22 Сейчас в теме
как вывести только наличные чеки? что не так с моими движениями?
код чтобы показать остаток
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Параметры.Свойство("КассоваяСмена", КассоваяСмена);
	Параметры.Свойство("КассаККМ", КассаККМ);
	Параметры.Свойство("ВидДвиженияНаличных", ВидДвиженияНаличных);
	
	Если ВидДвиженияНаличных = Перечисления.ВидыДвиженияНаличных.Внесение Тогда 
		Заголовок = "Внесение";
		Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаВнесение;
	Иначе 
		Заголовок = "Выемка";		
		Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаВыемка;                       
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДенежныеСредстваОстатки.СуммаОстаток КАК СуммаОстаток
		|ИЗ
		|	РегистрНакопления.ДенежныеСредства.Остатки КАК ДенежныеСредстваОстатки";
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл    
			ВКассе = ВыборкаДетальныеЗаписи.СуммаОстаток;   
		КонецЦикла;   
	КонецЕсли;  
	

	СоздатьВнесениеВыемкаДСНаСервере();
КонецПроцедуры
Показать

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

КонецПроцедуры

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


вид движения наличных - перечисления виды движения наличных(внесение/выемка)
тип денежных средств - справочник вид оплаты (есть реквизит там тип оплаты который ссылается на перечисления типы оплат ккт (наличные/электроно)
Прикрепленные файлы:
9. user2109808 26.11.24 11:43 Сейчас в теме
у меня сейчас выводит все деньги проведенных документов
Оставьте свое сообщение

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