Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 22:59

УТ 11.1.9.66 (платформа 8.3.7.1790) Рабочее место кассира

Автор Psm_2015, 12 мая 2016, 08:59

0 Пользователей и 1 гость просматривают эту тему.

Psm_2015

УТ 11.1.9.66 (платформа 8.3.7.1790)
    В разделе "Продажи" есть пункт "Рабочее место кассира", по которому открывается "ФормаДокументаМастер" документа "ЧекККМ". Среди кнопок нижней панели этой формы есть кнопки "В резерв" и "Отложить", но нет кнопки "Продолжить отложенный чек". Причем, если нажать любую из них, текущий чек проводится с соответствующим статусом, но форма не очищается. (хз почему так, кто знает поясните пожалуйста)
    Открыть же отложенный чек можно из раздела "Продажи" пункта "Чеки ККМ". По которому открывается форма списка журнала документов "ЧекиККМ". Здесь при выборе  срабатывает следующий код:

&НаКлиенте
Процедура ЧекиККМВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

ТекущиеДанные = Элементы.ЧекиККМ.ТекущиеДанные;
Если ТекущиеДанные.Тип = Тип("ДокументСсылка.ЧекККМ") Тогда
ПараметрыОткрытия = Новый Структура("Ключ", ТекущиеДанные.Ссылка);
Если ТекущиеДанные.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыЧековККМ.Пробит") И СменаОткрыта Тогда
СтандартнаяОбработка = Ложь;
ОткрытьФорму("Документ.ЧекККМ.Форма.ФормаДокументаМастер", ПараметрыОткрытия);
КонецЕсли;
КонецЕсли;

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


    Нужно сделать, чтобы в форме "Рабочее место кассира" была кнопка "Продолжить чек", по которой открывается форма со списком отложенных чеков и при выборе форма бы закрывалась, а в основной форме отображался выбранный чек.

    Если по кнопке открывать форму журнала со своими отборами (без пометки на удаление, текущая кассовая смена, статус чека ) то при выборе чека будет открываться новая форма "Рабочее место кассира", а не старая. Как сделать чтоб в старой открывалось?

Rasty

так открывайте форму выбора чека ккм со своими отборами, а потом обрабатывайте выбранный документ
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Psm_2015


Цитата: Rasty от 12 мая 2016, 10:01
так открывайте форму выбора чека ккм со своими отборами, а потом обрабатывайте выбранный документ

    Когда так делал с другой проблемой столкнулся.

    В "ОбработкеВыбора" формы "Рабочее место кассира" получал ссылку, и заполнял свойства объекта и табчасти. Все нормально открывалось, но при расчете ничего не происходило. Как потом показала отладка, я номер отложенного чека в текущий объект записал и во время проверки резервирования (при попытке записи) ошибка выводилась о не уникальности номера. Если номер не заполнять то расчет проходит, но соответственно это другой документ получается.

    Можно конечно после расчета или после получения отложенного чека удалять его, или не трогать т.к. в настройках при закрытии смены все отложенные чеки автоматически удаляются. Но мне показалось что такой вариант как-то через жопу сделан будет, и что я какую-то простую ошибку допускаю и не вижу её.

Rasty

попробуйте заполнить Объект.Ссылка выбранным документом, а потом вызвать УстановитьЗначенияПоНастройкам()
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Psm_2015

Цитата: Rasty от 12 мая 2016, 10:41
попробуйте заполнить Объект.Ссылка выбранным документом, а потом вызвать УстановитьЗначенияПоНастройкам()
сорри, туплю.

Объект у нас реквизит формы, данныеФормыСтруктура. Если писать:

      Объект.Ссылка = ЧекЗаполнения;

где ЧекЗаполнения это ссылка на выбранный отложенный чек, то выдает ошибку
"поле объекта недоступно для записи (ссылка)"

как правильно заполнить ссылку?

Rasty


&НаКлиенте
Процедура КакНазовете()
Вашапроцедура();

АдресПримененныхСкидокВоВременномХранилище = "";
УправляемыеСкидки = Новый СписокЗначений;

Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаТовары;
ПересчитатьДокументНаКлиенте();
КонецПрцедуры

&НаСеврере
Процедура вашаПроцедура()

    ВыбранныйЧек = //тут вы выбираете чек
ЗначениеВДанныеФормы(ВыбранныйЧек, Объект);

ТолькоПросмотр = Ложь;
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Объект, Документы.ЧекККМ));

ПриСозданииЧека();

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



Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Psm_2015

На "ЗначениеВДанныеФормы" ошибку ругается что-то про метод контекста.

В итоге вот так получилось:

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

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

Если Отказ Тогда
ПоказатьПредупреждение(,"Ошибка загрузки чека!");
Возврат;
КонецЕсли;

ПересчитатьДокументНаКлиенте();

КонецЕсли;

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

&НаСервере
Процедура ЗаполнитьДаннымиПоЧекуККМ(ЧекЗаполнения, Отказ)

Попытка
ЧекЗаполненияОбъект = ЧекЗаполнения.ПолучитьОбъект();
ЗначениеВРеквизитФормы(ЧекЗаполненияОбъект, "Объект");
Объект.Дата = ТекущаяДатаСеанса();
Исключение
Отказ = Истина;
КонецПопытки;

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


Спасибо Rasty!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск