На форме новой обработки поместите поле ввода с именем "ВыбЧекККМ"
Тип значения для этого поля укажите "ДокументСсылка.ЧекККМ"
В обработчике нажатия в форме обработки на кнопку "Выполнить" укажите следующий код:
ДокЧекККМ = ВыбЧекККМ.ПолучитьОбъект(); //получаем объект документа
ДокЧекККМ.СтатусЧекаККМ = Неопределено; //меняем статус чека
ДокЧекККМ.Записать(РежимЗаписиДокумента.ОтменаПроведения ); //оменяем проведение документа
ДокЧекККМ.УстановитьПометкуУдаления(Истина); //Помечаем на удаление документ
Сообщить("Чек помечен на удаление");
(8) Joker2705, после закрытия смены все товары из чеков переносятся в документ "Отчет о розничных продажах", а сами документы "Чек ККМ" принимают статус "Архивный" и не делают движений по регистрам. Так что придется обрабатывать док "Отчет о розничных продажах".
(8) Joker2705, это называется нарушение ведения кассовой дисциплины.
Если нужно вернуть деньги покупателю, или ошибочно пробит чек, то:
1. Если Кассовая смена не закрыта: делается чек на основание проблемного со статусом сторно. Прикладывается первоначальный чек и заявление на возврат от покупателя, или заявление от кассира на ошибочный чек заполняется форма КМ-3.
2. Если Кассовая смена закрыта: делается возврат денег через операционную кассу организации, прикладываются вышеуказанные документы и помимо этого заполняется еще форма КМ-4.
Иначе административное наказание. И если Чек пробит на фискальнике, как вы оттуда его удалять будете?
Вот и я про то же. Если смена закрыта, то уже ничего сделать нельзя. Это плохо. Мне нужно что бы после закрытия смены, я мог вернуть все как было и не оставить следов лишних.
(13) Joker2705,
К примеру, возможный код, убирающий продажи чека ККМ из сформированного ОРП и отвязывающий чек от ОРП:
//в переменной докчек находится ссылка на проблемный чек
//получаем ОРП, в который включен чек
если ЗначениеЗаполнено(докчек.ОтчетОРозничныхПродажах) тогда
ОРП = докчек.ОтчетОРозничныхПродажах;
ОРПОбъект = орп.ПолучитьОбъект();
Для Каждого Строка Из докЧек.Товары Цикл
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Номенклатура", Строка.Номенклатура);
Если ЗначениеЗаполнено(Строка.ХарактеристикаНоменклатуры) тогда
СтруктураОтбора.Вставить("ХарактеристикаНоменклатуры", Строка.ХарактеристикаНоменклатуры);
КонецЕсли;
СтруктураОтбора.Вставить("Цена", Строка.Цена);
СтруктураОтбора.Вставить("Сумма", Строка.Сумма);
НайденныеСтроки = ОРПОбъект.Товары.НайтиСтроки(СтруктураОтбора);
Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
Сообщить("Удаляется строка ОРП "+орп+" "+НайденнаяСтрока+" на сумму "+Строка.Сумма);
ОРПОбъект.Товары.Удалить(НайденнаяСтрока);
Прервать;
КонецЦикла;
КонецЦикла;
Для Каждого Строка1 Из докЧек.Оплата Цикл
Если Строка1.ВидОплаты = Справочники.ВидыОплатЧекаККМ.Наличные Тогда
ОРПОбъект.ОплаченоНаличными = ОРПОбъект.ОплаченоНаличными - Строка1.Сумма;
Иначе
Сообщить("Уменьшите вид оплат "+Строка1.ВидОплаты+" в ОРП "+орп+" на сумму "+Строка1.Сумма);
КонецЕсли;
КонецЦикла;
ОРПОбъект.Записать(РежимЗаписиДокумента.Проведение);
Чек = докЧек.ПолучитьОбъект();
Чек.ОтчетОРозничныхПродажах = "";
чек.Записать();
КонецЕсли;
А есть какая-нибудь универсальная обработка для редактирования чека под 2.1? А то вот недавно пришлось подчищать задвоенных клиентов. Так пользовался двумя обработками:
Изменить статус чека - чтобы убрать у него статус "архивный".
И универсальный подбор и обработка объектов (под обычный интерфейс О_о ) чтобы менять реквизиты. Под управляемый интерфейс что-то вроде некорректно искались чеки.
Затем этой же обработкой возвращал ему статус архивный.
Помогите разобраться, запускаем 1с розница 2.1, пробили несколько чеков через эмулятор, сделали несколько возвратов, создали несколько отчетов о продажах.
Как удалить наши тесты?
Готовы оплатить обработку или объяснение.
(20) luzh1n, Зачем? Они Вам не помешают, архивные чеки не имеют движений.
А отчеты ККМ, штатно, удалите (установить пометку удаления).
Ну если очень хочется, то в (3) ответ.
Процитирую с позволения автора)))
ДокЧекККМ = ВыбЧекККМ.ПолучитьОбъект(); //получаем объект документа
//***добавлю только 2 строчки
ДокЧекККМ.ОбменДанными.Загрузка = Истина;//иначе не даст изменить статус чека
ДокЧекККМ.ОтчетОРозничныхПродажах = Документы.ОтчетОРозничныхПродажах.ПУстаяСсылка();//и обнулить ссылку на ОтчетККМ
//***
ДокЧекККМ.СтатусЧекаККМ = Неопределено; //меняем статус чека
ДокЧекККМ.Записать(РежимЗаписиДокумента.ОтменаПроведения ); //оменяем проведение документа
ДокЧекККМ.УстановитьПометкуУдаления(Истина); //Помечаем на удаление документ
Сообщить("Чек помечен на удаление");
Показать
А дальше, опять же штатно - Администриорвание\Удаление помеченных на удаление объектов.
(22) luzh1n, Написать простенькую обработку, в которой выбрать чеки, и в цикле вставить/выполнить код выше (21).
Можно через универсальную обработку "УниверсальныйПОдборИОбработкаОбъектов" с ИТС, с помощью произвольного алгоритма.
Судя по вопросу, внедряете своими силами без участия профильного специалиста? И Вам нужно готовое решение, а не совет).
Повторюсь, удалять тестовые архивные чеки совсем не обязательно, а "отчеты о розничных продажах" просто пометить на удаление (удаленные документы не делают никаких движений, как будто бы их нет...)) Это нормальная практика. Или Вы считаете, что Вы живете в идеальном мире, и все документы и справочники вводятся без ошибок? это не так, и ничего страшного в этом нет ...
Повторюсь, удалять тестовые архивные чеки совсем не обязательно, а "отчеты о розничных продажах" просто пометить на удаление (удаленные документы не делают никаких движений, как будто бы их нет...))
Это так что прописная истина,но забываете о такой вещи как психология.Тупо глаза мозолят,тупо надоедают ошибки при удалении,а таких файлов по перваку наберется огого сколько,и что?сидеть и смотреть на них?Естественно нужно все дело очистить,в ответах выше выложили обработку для изменения статуса чека,ее вполне хватает,убираем архивный статус,ставим на удаление и при ошибках подчищаем в связанных доках предмет удаления:).(отмену проведения,поле дата,права админа никто не отменял)
В УТ11.1 обработка изменения статуса не работает. Говорило что-то типа поле объекта "статус" не найдено. Удалял с помощью какой-то универсальной обработки, меняя им статус на "отложенный" с последующей пометкой на удаление.