8.х Программное изменение полей справочника?

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

  1. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Прошу вас помочь мне в вопросе сабжа. Как мне в программе изменить значение реквизита строки справочника?

    Например у меня есть справочник Организации, и мне необходимо изменить его реквизит Наименование. В определеный момент в программе, я делаю срезпоследних из РегистраСведений.РеквизитыОрганизаций, после проверяю на количество строк в срезе и если их не 0, тогда присваиваю результат среза - реквизиту наименование справочника - организации! Но этот способ не работает, поправьте меня пожалуста в чем ошибка? Спсибо.


    Код:
    Отбор = Новый Структура("СтруктурнаяЕдиница");
    Отбор.СтруктурнаяЕдиница = Организация;
    СрезПоследних   = РегистрыСведений.РеквизитыОрганизаций.СрезПоследних(ТекущаяДата(), Отбор);
    
    Если СрезПоследних.Количество() >= 1 Тогда
    НачатьТранзакцию();
    Организация.Наименование = СрезПоследних[0].НазваниеОрганизации;
    ЗафиксироватьТранзакцию();
    КонецЕсли;
    
  2. jon
    Offline

    jon Опытный в 1С

    Регистрация:
    4 сен 2006
    Сообщения:
    76
    Симпатии:
    0
    Баллы:
    26
    Надо добавить запись в регистр сведений.
    Пример
    НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();

    НаборЗаписей.Отбор.Валюта.Установить(ТекущаяВалюта);
    НаборЗаписей.Отбор.Период.Установить(ТекущаяДата);

    НовЗапись = НаборЗаписей.Добавить();
    НовЗапись.Валюта = ТекущаяВалюта;
    НовЗапись.Период = ТекущаяДата;
    НовЗапись.Курс = ТекущийКурс;
    НовЗапись.Кратность = ТекущаяКратность;

    НаборЗаписей.Записать(Истина);

    Если конечно у тебя наименование организации - переодический реквизит
  3. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Чтобы было больше понятно: В справочнике Организации есть поле которе созадется по умолчанию - Наименование.
    так же у меня есть РегистрСведенийРеквизитыОрганизаций в котором храняться все реквизиты которые могут в процессе работы организации изменяться: Название, ПравоваяФорма, УставнойКапитал... все работает нормально. Записи в регистр сведений происходят при проведении документа-регитсратора - "Акт Изменения реквизитов организации". И Все записывается классно, и работает. Но в справочнике Организации нет реквизита Название Организации - он у меня в РегистреСведений, и при открытии формыэлемента справочника организаций - функция делает срезпоследних из регистра сведений и заполняет поля в форме организации - здесь все классно и тоже работает. Но вот незадача с формой-списком справочника Организации, в нем выводится поле Наименование - но так как я его не использую оно пустое... я вот подумал почему бы мне при записи в регистр сведений об изменении реквизитов организации - не заполнять поле Наименования справочника Организация новым названием? и хочу у вас узнать как это сделать программно, то есть запись в Регистре сведений у меня уже есть, мне необходимо теперь изменить значение поля Наименование в Справочнике - Организаций. Вот в этом и сама суть моего вопроса вам.
  4. jon
    Offline

    jon Опытный в 1С

    Регистрация:
    4 сен 2006
    Сообщения:
    76
    Симпатии:
    0
    Баллы:
    26
    Можно это делать при проведении док "Акт Изменения реквизитов организации"

    Отбор = Новый Структура("СтруктурнаяЕдиница");
    Отбор.СтруктурнаяЕдиница = Организация;
    СрезПоследних = РегистрыСведений.РеквизитыОрганизаций.СрезПоследних(ТекущаяДата(), Отбор);

    Если СрезПоследних.Количество() >= 1 Тогда
    НачатьТранзакцию();
    Орг = Организация.ПолучитьОбъект();
    Орг.Наименование = СрезПоследних[0].НазваниеОрганизации;
    Орг.Записать();
    ЗафиксироватьТранзакцию();
    КонецЕсли;
  5. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое! Именно то, что мне нужно было! Я получется чуть чуть не доработал код! Огромное спасибо. Еще главное, что я как новичек, ссмог правильно сформулировать цель задачи, что вы поняли ее, и помогли именно тем, что требовалось))
  6. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    Новую тему решил не создавать, вопрос вобщем следующий: Необходимо по данным документа создать элемент справочника "Организации", и создать записи в регистрах сведений(при этом мне уже нужна будет ссылка на созданный элемент справочника "Организации"), как это грамотней всего организовать?
  7. TopicStarter Overlay
    Greck
    Offline

    Greck Опытный в 1С

    Регистрация:
    11 дек 2006
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    26
    А вот и решение! Просто оказывается все! Созадем новый элемент в Справочнике "Организации"

    Код:
    НоваяОрганизация = Справочники.Организации.СоздатьЭлемент();
    НоваяОрганизация.Наименование = Название;
    НоваяОрганизация.ДатаРегистрации = ДатаРегистрации;
    НоваяОрганизация.КодОКПО =  КодОКПО;
    НоваяОрганизация.СистемаНалогооблажения = СистемаНалогообложения;
    НоваяОрганизация.ДатаЛиквидации = ДатаЛиквидации;
    НоваяОрганизация.Район = Район;
    НоваяОрганизация.Записать();
    
  8. Cannon
    Offline

    Cannon

    Регистрация:
    10 фев 2007
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Короче, читайте мануал.

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