7.7 запрос сохранения и перепроведения чека

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем К_Е, 15 май 2012.

  1. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    (трудно было придумать адекватное название темы)

    Смысл проблемы в том, что при создании чека ккм происходит следующее:
    1) создаем новый чек
    2) делаем подбор номенклатуры
    3) вводим сумму
    4) жмем ОК
    и тут видим окошко
    Посмотреть вложение 11131

    При этом, нажатие на кнопки ДА или НЕТ имеет одинаковый эффект - чек сохраняется, закрывается и переходит в журнал документов.
    То же самое окошко появляется при нажатии на "крестик" - закрытие окна.

    Т.е. как-будто чек уже был сохранен, хотя ни "записать", ни "провести", короче, никаких кнопок не нажимали.

    Началось все это с того, что в программе появилась новая обработка для расчета по банковским картам.
    Товарищи, написавшие и внедрившие обработку говорят о том, что это происходит из-за рассинхронизации времени и также что есть проблема с ТА. :blink:

    Вопрос: как избавится от этого окошка? в какую сторону смотреть?

    Вложения:

    • сд.JPG
      сд.JPG
      Размер файла:
      11 КБ
      Просмотров:
      9
  2. Allizar
    Offline

    Allizar Опытный в 1С

    Регистрация:
    24 сен 2006
    Сообщения:
    413
    Симпатии:
    0
    Баллы:
    26
    В сторону товарищей.
  3. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    это понятно.
    А если глядеть на код?
  4. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    еще одно уточнение. Поковырялась в коде. При нажатии на кнопку "Провести" документ проводится, но сразу же помечается "звездочкой", как измененный документ.
  5. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Если и при нажатии на кнопку нет, все равно сохраняется, то нужно смотреть предопределенную процедуру формы документа "ПриЗакрытии()".

    А если звездочкой помечается после проведения, то на форме есть текстовый реквизит, который вызывает функцию, которая в свою очередь присваивает значение реквизитам документа (возможно реквизитам формы).
  6. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    как приятно, когда отвечают :))

    в процедуре ПриЗакрытии() ничего криминального не обнаружилось. Там только
    Код:
    глДПВключитьРежимВыводаБегСтроки(); 

    Еще вот что в другой процедуре нашла

    Код:
    Процедура ВыполнитьНажатиеНаКнопку(ИмяКнопки)
    Если ИмяКнопки="Записать" Тогда
    ...
    ИначеЕсли ИмяКнопки="Провести" Тогда
    ...
    
    ИначеЕсли ИмяКнопки="ОК" Тогда
    ...
    КонецЕсли;
    Если ИмяКнопки="ОК" Тогда
    Форма.Закрыть(1);
    КонецЕсли;
    Удобно конечно поставить у Форма.Закрыть параметр 0, чтобы вопросов не задавала.
    Но именно в этой процедуре происходит весь косяк, хотя обращений к текстовым реквизитам там нет.
  7. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Их там и не должно быть. Скорее всего они на самой форме.
  8. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Нашла!
    Функция РасчетСдачи() присваивает число реквизиту формы под названием "Наличные".

    А как исправить - не знаю .
  9. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Просто на форме ввести текстовый реквизит с вызовом функции РасчетСдачи
    Функция выглядит примерно так
    Код:
    Функция РасчетСдачи()
    Возврат ?((ОтдалПокупатель>0),ОтдалПокупатель-Итог("Сумма"),0);
    //ОтдалПокупатель - ваш реквизит с суммой полученной от покупателя
    //Сумма - реквизит ТЧ документа
    КонецФункции
    
  10. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26

    Вложения:

    • 2.JPG
      2.JPG
      Размер файла:
      64,9 КБ
      Просмотров:
      18
    • 1.JPG
      1.JPG
      Размер файла:
      47 КБ
      Просмотров:
      17
  11. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Наличные это только реквизит формы? Не документа?
  12. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    "ВыполнитьНажатиеНаКнопку(ИмяКнопки)" видимо, повесили на три кнопки на форме, и в теле процедуры, видимо, есть Вопрос(), при овтете = "Нет" нужно впендюрить "Форма.Закрыть(0)". Если нет Вопроса() тогда можно его написать вместо "Форма.Закрыть(1)". Также поищи слово "Записать()" в модуле формы.

    признак модифицированности можно скинуть формексом, либо отключить заполнение реквизитов при открытии/манипуляциях..

    По поводу РасчетСдачи().. Если реквизит Наличные используется в каких-либо отчетах или обработках - тогда нужно оставлять, но можно убрать его с вызова из формы и указать в процедурах
    ПриОкончанииРедактированияСтроки(),
    ПриУдаленииСтроки() и навесить в формулы полей "Получено" и "Безнал"
  13. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Признак можно сбросить и без ВК
    Код:
    НачатьТранзакцию();
    Записать();
    ОтменитьТранзакцию();
    Только вот не кошерно это... Процедурка-то вызывается на форме и признак меняется при любой манипуляции. А модифицирован м.б. и нужный реквизит.
    Можно добавить конечно вышеприведенный код в процедуру ПриОткрытии...
  14. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    проблема решена.
  15. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну так опишите каким образом... Вдруг другим пригодится
  16. TopicStarter Overlay
    К_Е
    Offline

    К_Е Опытный в 1С

    Регистрация:
    8 июл 2008
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    как я и говорила выше, обработка была написана сторонней организацией. Я позвонила, об`яснила в чем заключается проблема. Мне предложили дописать в код функции РасчетСдачи() следующее условие: если сумма наличных не меняется, то не присваивать ей значение.

Поделиться этой страницей