Проведение документа

Тема в разделе "1C и всё что с ней связано", создана пользователем VoodyGoo, 19 авг 2008.

  1. VoodyGoo

    VoodyGoo Гость

    Документ имеет принадлежность к бухгалтерскому учету. Документ создаётся сегодня, а проводится, например завтра.
    Добавил в реквизиты шапку "ДатаПроведения", и при проведении документа по дате, указанной в реквизите (она превышает дату документа), система выдает сообщение, что у проведённого документа дату менять нельзя. Если провожу на ту же дату. что и дата создания документа, то все нормально.
    Как сделать, что бы можно было провести документ на дату позднее его создания, или в чем ошибка?
     
  2. AlexeyP

    AlexeyP Гость

    Чтобы провести док с новой датой, нужно отменить его проведение, иначе будет вылазить эта ошибка.
    Либо при создании дока не проводите его, либо попробовать воспользоваться методом СделатьНеПроведенным().
    Хотя могу ошибаться. Я еще сам ламер :)
    СделатьНеПроведенным();
    Синтаксис:
    СделатьНеПроведенным()
    Назначение:
    Отменить проведение документа.
    Замечание:
    Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения.
    Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
     
  3. VoodyGoo

    VoodyGoo Гость

    в том то и дело, что документ то не проведен до этого. Но ошибка все равно выходить. Даже если делать отмену проведения перед вызовом обработки проведения
     
  4. AlexeyP

    AlexeyP Гость

    Не знаю, как ты делаешь (на "ты" не против?), но я вот у себя по быстрому набросал док.
    В модуле документа после объясления процедур добавляем еще одну процедуру:

    Прцедура УстановкаДатыПроведения()
    Если ПустоеЗначение(ДатаПроведения)=0 Тогда
    ДатаДок = ДатаПроведения;
    КонецЕсли;
    КонецПроцедуры;


    На форму добавляю реквизит (поле ввода) "ДатаПроведения". В его свойствах на вкладке Дополнительно в поле формула пишу:
    УстановкаДатыПроведения();

    Если открываем непроведенный док и пишем в поле ДатаПроведения; какую-нибудь дату, жмем Enter, дата дока меняется на введенную нами.
    Проводим док и радуемся :)

    Хотя я вот не понимаю смысла всего этого :) Может не то написал?
    Не легче уже в ДатаДок указывать дату проведения, а дату документа оформлять отдельным реквизитом (как в типовой конфе - ДатаДокВходящий)?
     
  5. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    А толку? при проведении используется ТОЛЬКО ДатаДок - всё остальное от лукавого. Так что дополнительный реквизит на проведение задать не получится. может проще датой создания считать ДатаПРоведения, а проводить на ДатаДок? Тогда можно при мерно так

    Процедура ОбработкаПроведения()
    Если ПустоеЗначение(ДатаПроведения) = 0 Тогда
    Если ТекущаяДата()<ДатаДок Тогда
    Сообщить("Проведение невозможно на текущий день!");
    НеПроводитьДокумент();
    КонецЕсли;
    КонецЕсли;
     
  6. AlexeyP

    AlexeyP Гость

    я к этому и пришел в предыдущем посте.
     
  7. Hryv

    Hryv Гость

    VoodyGoo, а тебе собственно что надо сделать?
    Знать дату, когда док фактически провели или чтобы проводки легли на нужную дату
    В принципе, есть несколько обходных путей
    Поясни, что конкретно ты хочешь получить

    Видимо ты пытаешься дату менять из ОбработкаПроведения()?
    Не уверен на 100%, но по-моему так делать нельзя
     
  8. VoodyGoo

    VoodyGoo Гость

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




    AlexeyP, так получается всё, но смысла только нет. Получается, что при проведении меняется и сама дата документа (то есть дата его создания), а это не правильно как-то

    P.S на "ты" не против
     
  9. kaa

    kaa Гость

    Ну так обзови датадок - Датой проведения, а реквизит используй как дату создания ;)
     
  10. VoodyGoo

    VoodyGoo Гость

    ДатуДок переименовать то не удастся, это ведь предопределённый реквизит документа. Можно конецно при создании продублировать эту дату в другом реквизите, и потом при проведении на дату лок поставить текущую дату, но тогда могут быть последствия потом, в отчетах каких нибудь.
    Может проводку нельзя пустить по не дате документа, из-за того, что документ имеет принадлежность к бухучёту(стоит галочка)?
     
  11. kaa

    kaa Гость

    Нет операция документа ВСЕГДА делается по дате документа, переименовывать датудок, не надо просто поменяй на форме реквизиты местами, при создании документа в Реквизит ДатаПроведения вставляй текущую дату ,а датудок будут менять на какую надо.

    Поскольку документ не проведен, изменений по бух счетам не будет, но после проведения конечно изменятся данные в отчетах, но это будет в любом случае.
     
  12. Hryv

    Hryv Гость

    VoodyGoo, тебе в принципе правильно все советуют
    операция всегда привязана к ДатаДок
    Если надо отдельно хранить дату создания, то храни ее в специально созданном реквизите

    В этом случае есть некоторое неудобство (не знаю на сколько тебе важно) - в журнале документы будут отсортированы по дате проведения, а не создания

    Но можно немного поизвращаться
    Допустим есть Документ1 - создай второй документ, например, ОперацияДокумент1, с одним единственным реквизитом типа Документ1.

    Переместить ОбработкаПроведения() из первого дока в новый будет не сложно. Сделаешь, чтобы ОперацияДокумент1 создавался через ввод на основании первого или из ОбработкаПроведения() первого документа, задавай им одинаковый номер (так подстрахуешься от дубликатов). Запрети создавать и изменять руками ОперацияДокумент1. Поместишь их в один журнал и будет у тебя документ отдельно, а проводки отдельно.

    Может быть решение не очень красивое, но для твоей хитрой ситуации дает именно то, что ты хочешь
     
  13. VoodyGoo

    VoodyGoo Гость

    Hryv
    Я конечно думал о создании отдельного документа для операции, но исходный привязан ещё и к компоненте "Расчет", а я с этим не знаком как-то, и поэтому не знаю о последствиях.
    А если я у док-та для операции установлю привязку к тем же компонентам (т.е. бух и расчет), то кажется нормально все будет. Ведь привязка к компоненте расчет обеспечивает создание записи в Журнале расчетов?

    Мне второй вариант кажется более правильным...

    Вопрос решен. С бухгалтерами поговорил ещё раз, и выяснилось. что им дата создания не нужна и вовсе (не могли блин сразу так сказать). Так что просто поменяю дату проведения с датой документа..
    Всем спасибо ;)
     
  14. Hryv

    Hryv Гость

    Честно говоря не понятно зачем вообще такое понадобилось
    Ведь только путаться будете (особенно если есть еще печатные формы)
     
  15. VoodyGoo

    VoodyGoo Гость

    Речь идет о док-те "СписокВБанк". Сначала один из бухгалтеров составляет список сотрудников и получает сумму для перечисления в Банк, а потом другой бухгалтер, после того как деньги в Банк отправленны, проводит документ
     
  16. Hryv

    Hryv Гость

    А почему так принципиально знать дату создания?
    Нормальная ситуация - документ сформировали заранее, а провели нужной датой
     
  17. VoodyGoo

    VoodyGoo Гость

    ну это уже не мои заморочки, как просят - так и делаю!
     
Загрузка...

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