#0
by DimoNN
Добрый день . Помогите разобраться. В КА поступила такая задача . Нужно было что бы ЧекККМ разбивался на два. Пользователь создает одни чек с товарами и услугами, программа создает еще одни дополнительный где выбирает только услуги ( с другой кассой и организацией ) . Я реализовал так, сделал это в событии модуля объекта ПередЗаписью. Копируется документ, из него удаляются товары, меняется касса,организация и записывается. В исходном удаляются услуги , и добавляется ссылка на чек созданный программно. За несколько дней алгоритм проработал пару тысяч раз. И несколько раз ( около 5-8) у пользователя случалась ситуация , что подчиненный чек не создавался. А в поле подчиненный чек вылазила надпись «объект не найден» . При записи подчиненного чека делал «Попытку исключение», но исключительная ситуация не наступала . Как мне найти причину ?
#2
by Ринат-СПб
Делал то же самое, только для розницы. Правда использовал РМК (интерфейс) и обрабатывал только при закрытии чека (т.е. формировалось 2 чека и ФР выводил два чека) Может проще сделать что то типа РМК для чеков?
#4
by DimoNN
Довольны даже. Сделать нужно было за 2 дня и что бы работа менеджеров и кассиров ни как не усложнилась . ( т. е. Работали как им привычно ) . Печатные формы были доработаны , что бы из исходного чека все печаталось, и некоторые еще доработки ( по их системе скидок , и авто переносу услуг в подчиненный) С розницей ни разу не работал, примерно представляю РМК, не могу представить преимущества . А собственному по мое вопросу не подскажите , куда копать ?
#5
by РенеДекарт
>Я реализовал так, сделал это в событии модуля объекта ПередЗаписью. - это главная ошибка. Ссылка еще не сформирована, и другой док может получить именно ту же ссылку. Т.к. предыдущая еще не зафиксирована и не является "действующей".
#6
by Sammo
Чудес не бывает. Если объект не найден, то значит документ с услугами не записан. Например, отрабатывает что-то "Перед Записью" Личное имхо 1. Схемы, когда в модуле одного документа создаются и проводятся взаимозависимые стоит применять в крайнем случае (точнее в _самом_ крайнем случае, когда иначе ну просто вилы). Например в данном случае возможно будет эффективнее обработка, которая будет выносить услуги отдельно от записи документа. 2. Попытка Исключение может не отработать (например, при попытке записи не создается ошибки и исключения). Поэтому после записи стоить проверять на заполненность ссылки.
#8
by DimoNN
А как так может получится ? Зачем платформа позволят копировать не записанный в базу объект (без ссылки) ?
#12
by РенеДекарт
ты не понимаешь, что написал. > Зачем платформа позволят копировать не записанный в базу объект (без ссылки) ? - не платформа "копирует" (как ты придумал себе) документ, а выдает новому документу ту же "ссылку", которую, получается, себе уже "нацепил" предыдущий документ. База ведь файловая?
#13
by DimoNN
Хм. Одни пользователь говорил про какую ту мистику, мол чек не создался . А в структуре подчиненности основной чек ссылался на другой чек ( с услугами ) , созданный другим пользователем , а при повторно открытии перестал. Где бы почитать , про то как и когда создается ссылка ?
#15
by DimoNN
Т.е. так как чек с услугами создается раньше, основной чек перетирает его, когда ссылка одинаковая. Так получается ? А почему так происходит не всегда ?
#16
by РенеДекарт
могут еще другие чеки создасться между ними. Вообще, никогда нельзя в 1С использовать для изменения данных ПередЗаписью и ПриЗаписи. Только просмотр и корректировка каких-то других, не связанных данных. А тут - один объект еще не досоздался до конца (скользкий момент ПередЗаписью), а уже создается другой. Проще простого - разбиваешь/формируешь первый чек, как надо, остальные данные (тело сследубщего чека) сохраняешь в ТЗ, записываешь первый, формируешь второй, заполняешь, записываешь. И никаких Перед-ПриЗаписи.
#17
by РенеДекарт
ссылка сначала создается, потом присваивается объекту при записи. А ты создать её создал, а присваиваешь в неопределенный момент времени, когда платформа точно такую же ссылку уже могла сформиовать и выдать совсем другому объекту (даже не твоему следующему чеку). Вот почему не ругается в SQL-базе на неуникальность - вопрос. Или серверная файловая?
#18
by РенеДекарт
>Так получается ? - ты сам запутал все и вывел в неопределенность. Нсчала запиши, потом формируй следующий.
#19
by lodger
а в обработке проведения разбить логику? сперва штатно сформировать 1 документ, записать полностью зафиксировать транзакцию, а потом продолжить но уже со следующим? хотя можно и в одной если заранее обозначить что объектов у тебя 2.
#20
by РенеДекарт
> а в обработке проведения разбить логику? - предлагаешь ему транзакцию в транзакции открыть? Еще больше дров наломает.
#23
by DimoNN
Я думаю самый лучший вариант уже тогда создать просто отдельную кнопку на чеке ( по которому создается подчиненный чек с услугами ) , а потом уже записывать основной.
#24
by DimoNN
Обработка проведения не пойдет . Так как менеджер чаще всего создает чеки . А проводит их уже кассир .
#27
by РенеДекарт
да делай как хочешь, только не лезь в Запись, когда ссылка формируется. Ты ж сути не понимаешь - делай где угодно, только события записи оставь в покое.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Битая таблица. При попитке восстановить индексный файл 1С вылетает с ошибкой.
- Битая ссылка вместо предопределённого элемента
- Как определить, что ссылка "битая"?
- Обновление номенклатуры при программном создании документа
- v7: Проверка прав при программном создании документа
- ЗначениеЗаполнено(Ссылка) vs Ссылка.Пустая()
- Как определить программно ссылка битая или нет ?
- Привязки при программном создании табличной части
В этой группе 1С
- Веб-сервер 1С, IIS 7.0, авторизация Windows
- Нужно ли переоценивать в особом порядке счет 67.24
- СКД. Вывести произвольный подзаголовок.
- v7: Разрушен файл данных таблицы
- Зависает пр формировании печатной формы
- Отладка внешней обработки, вызываемой по расписанию УТ11
- Регламентные задания отрабатывают раз в минуту
- Передача переменной типа COMОбъект в модуле формы в 1С 8.3
- v7: Перебрать запросом документы и получить цены номенклатуры из справочника цен.
- СКД как в одном из запросов отключить условие периода
- Закрытие 25-го счета по подразделениям для услуг
- Бухглатерия 3.0 УФ. Выбор договора в Реализации товаров и услуг.
- v7: Обмен данными 1с интернет магазин
- Прочие доходы и расходы. Настройка субконто.
- Вывести нижний колонтитул (картинку) в печатной форме.
- Как закрыть связанную информацию?
- 1С напоминание поверх всех окон
- Вид движения документа
- v7: 1С ЗиК как оформить дни отдыха в счет работы в выходные?
- Принятие к учету ОС в УПП