8.х Нумерация элементов справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Семен Сосницкий, 15 окт 2014.

  1. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Прямо в самой процедуре? Написал, ругается "Метод объекта не обнаружен (Записать)"
    Вы извините за нубские вопросы, я просто еще совсем начинающий.
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Дык не надо давать тупые по своему смыслу советы.

    Наименование необходимо формировать программно в обработчике "ПередЗаписью()" в зависимости от установленных программно/интерактивно значений реквизитов, участвующих в формировании значения номера.

    Новый номер можно сгенерировать методом УстановитьНовыйНомер(), который вернет номер сформированный с сохранением префикса.
    Правда, не могу сказать точно вызовет это запись документа в БД или нет, судя по С-П - не вызывает.

    УАТ - управление автотранспортом.
  3. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    398
    Баллы:
    104
    В принципе там ошибки то быть не может. пропишите весь Ваш код в событии при записи. Там код уже сформирован?
  4. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    В ПриЗаписи() вызовет изменение "Модифицированность" и опять будет как в УАТ.......
  5. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Всю жизнь обработчики объектов в модуле объекта были. По поводу говнокода - согласен :)
  6. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Не понял, вот так нужно?
    Код:
    &НаКлиенте
    Процедура ПослеЗаписи(ПараметрыЗаписи)
        УникальноеНаименование = Объект.Код;
        УникальноеНаименование = "Коммерческое предложение № " + УникальноеНаименование + " от " + Формат(ТекущаяДата(), "dd MM yy hh mm");
        Объект.Наименование = УникальноеНаименование;
        Объект.Записать(); 
    КонецПроцедуры
    
    Не работает :(
  7. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Вы путаете ПриЗаписи() и ПослеЗаписи()
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Мой вам совет: не делайте так никогда....вообще НИКОГДА.

    Все необходимо сделать в "ПередЗаписью()", либо в подписке на данное событие.
  9. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Есть только ПриЗаписиНаСервере (кстати не подскажете заодно в чем разница между ПередЗаписью и ПередЗаписьюНаСервере, ПослеЗаписи и ПослеЗаписиНаСервере?), но там та же ошибка.
    --- Объединение сообщений, 15 окт 2014 ---
    Так а как сделать ПередЗаписью, если Код присваивается только после записи?
  10. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Вы где код пишите, в модуле формы или в модуле объекта ?
    --- Объединение сообщений, 15 окт 2014 ---
    Или же в менеджере объекта ?
  11. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    В модуле формы.
  12. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    в модуле формы, судя по коду.
    --- Объединение сообщений, 15 окт 2014 ---
    В какую сторону рыть подсказал в #22
  13. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Тогда разберитесь, чем отличается модуль формы от модуля объекта
  14. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Когда будете программировать очередной подобный случай, всегда держите в голове мысль о том, что формы может и не быть, т.к. документ сформирован программно строками вида:

    НовыйДок = Документы.<ИмяДокумента>.СоздатьДокумент();
    НовыйДок.Дата=ТекущаяДата();
    НовыйДок.Записать(РежимЗаписи.Запись);

    В этом случае ваш код в модуле формы просто не будет выполнятся.
  15. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    Спасибо всем за ответы, хотя в итоге так и не понял, как мне сделать, чтобы в модуле формы этот код выполнялся. Еще не подскажете, где можно (если конечно вообще можно) снять проверку заполнения обязательного реквизита "наименования", а то ведь и не закрыть элемент справочника, пока его не заполнишь, а заполнятся он должен автоматически.
  16. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    В модуле формы сделайте формирование наименования в зависимости от установленных значений реквизитов, участвующих в формирование значения номера. Если таких реквизитов нет, то в форме документа ничего делать не нужно.
    Все необходимо делать в модуле документа или в подписке на событие "ПередЗаписью".

    В настройках реквизита формы можно выключить проверку на пустое значение.
  17. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Можно и кодом такую проверку убрать :)
  18. TopicStarter Overlay
    Семен Сосницкий
    Offline

    Семен Сосницкий Опытный в 1С

    Регистрация:
    21 июл 2014
    Сообщения:
    163
    Симпатии:
    0
    Баллы:
    26
    У обычных реквизитов вижу, а у обязательных что-то не нахожу.
  19. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Если конфигурация типовая, то возможно необходимость заполнения устанавливатеся кодом и кодом же проверяется.
    Необходимо разобраться.
  20. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    В реквизитах формы они и будут работать, а вот в реквизитах объекта - нет :)
    Молодой человек, купите версию 1С для обучения программирования, основы нет времени объяснять.

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