7.7 Значение нового реквизита в старых документах

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Johnstr85, 22 мар 2008.

  1. TopicStarter Overlay
    Johnstr85
    Offline

    Johnstr85

    Регистрация:
    22 мар 2008
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Помогите пожалуйста.
    Мне нужно чтобы в старых документах значение нового реквизита формы (которого раньше в документах не было), по умолчанию было равно 1. Конкретно это нужно для флажка. Использоваться он будет в отчетах. Если флажок есть то в отчет документ попадает, если нету то нет. Всем старым документам по умолчанию флажок должен быть установлен. Т.е. не при открытии документа и не при вводе нового. А именно, чтобы когда реквизит считывался с документа там было значение 1. И естественно если пользователь уберет галочку, то она снимается и документ не попадает в отчет. Есть вариант конечно завести новый реквизит (допустим СмФл) и менять его в процедуре ПриЗаписи() на 1. А в теле модуля формы записать
    Код:
    Если СмФл <> 1 Тогда
    Флаг = 1;
    КонецЕсли;
    
    
    
    Но нельзя ли это сделать проще? (вернее получится может сложнее, но зато без лишнего реквизита).
    Ведь надо то всего, если разобраться "0" по умолчанию переделать на "1", но без сохранения (перепроведения) старых документов.

    ЗЫ как сделать это для новых документов (вновь создаваемых), и при перепроведении документа я знаю

    Так я тут посмотрел без сохранения документа никакие значения реквизитов ему переназначить нельзя. Значит мой способ с лишним реквизитом не подходит, единственный вариант это при добавлении нового реквизита по умолчанию в него вставить эту 1, но как это сделать? Помогите. Заранее благодарен
  2. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Есть два решения:
    1. Написать обработку которая всем документам поставит в этот реквизит 1. Можна и без перепроведения.
    2. Допустим наоборот, если значение реквизита (назовем его ПризнакОтчета) 0 - документ идет в отчет, а 1 - документ в отчет не идет, тогда и ничего делать со старыми документами не придется. Только на форму добавлять надо не реквизит в виде флажка, а просто флажок (назовем его фПризнакОтчета) без привязки до реквизита, а в коде уже присваивать этому флажку значения 1 или 0 (тоесть если ПризнакОтчета = 0, то фПризнакОтчета = 1; если ПризнакОтчета = 1, то фПризнакОтчета =0) - для того чтобы не путать пользователя, тоесть для пользователя все остается на своих местах, а для программиста перевернуто с ног на голову:).
    ИМХО первый способ будет правильнее - логика сохраняется, но тут уже надо смотреть конкретную ситуацию.
  3. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Жжете, товарищ Kaboom? :unsure:
  4. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Интересно, что же вам не понравилось товарищ Snake-84? :unsure:
  5. Snake-84
    Offline

    Snake-84 Опытный в 1С

    Регистрация:
    28 янв 2007
    Сообщения:
    110
    Симпатии:
    0
    Баллы:
    26
    Не хотел обидеть, просто улыбнуло: я, конечно, тоже иногда люблю поизвращаться, но зачем искать лишние косяки ... есть же какие-то "правила хорошего тона" в программировании!
  6. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Я же и написал, что считаю второе решение не рациональным. Вопрос был "какие есть решения?" вот я и нашел два решения.
    ЗЫ Есть такой метод поиска решений, называется методом мозгового штурма, очень хорошая штука, так там на первом этапе чем больше идей тем лучше.

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