8.х Менеджер записи не может быть использован для регистра с режимом записи "Подчинение регистратору"

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Vitaly, 7 апр 2015.

  1. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Необходимо без перезаписи документа внести изменения в регистр сведений, но при СоздатьМенеджерЗаписи() выдает ошибку:
    Менеджер записи не может быть использован для регистра с режимом записи "Подчинение регистратору"
    Как можно внести изменения в данный регистр через внешнюю обработку?
    Спасибо.
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну через набор записей с отбором по регистратору если надо
    Vitaly нравится это.
  3. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Мне нужно реквизит менять.
    Через Получить последнее получать данные? Или как?
    Код:
    Значение=РегистрыСведений.НеобходимыйРегистр.ПолучитьПоследнее(ТекущаяДата(),Отбор);
    --- Объединение сообщений, 7 апр 2015 ---
    Я так значение получил но реквизитов там нет. Путем перебора Выборка=РегистрыСведений..... Пока Выборка..
    нахожу необходимые значения но получить многу только менеджер записи но с ним описанная ошибка.
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Через НаборЗаписей.Создать()
    А затем Прочитать()

    что то типа
    Код:
    НаборЗаписейПлановаяСебестоимостьПродукции = РегистрыНакопления._Г_ПлановаяСебестоимостьПродукции.СоздатьНаборЗаписей();
            НаборЗаписейПлановаяСебестоимостьПродукции.Отбор.регистратор.значение = ДокументСсылка;
            НаборЗаписейПлановаяСебестоимостьПродукции.Отбор.регистратор.использование = Истина;
            НаборЗаписейПлановаяСебестоимостьПродукции.Отбор.регистратор.ВидСравнения = ВидСравнения.Равно;
    НаборЗаписейПлановаяСебестоимостьПродукции.Прочитать()
    Vitaly нравится это.
  5. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Через отбор я указываю значения всех измерений? Речь про периодический регистр сведений идет, какой значение подберется?
  6. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну если надо еще и по измерениям отбор сделайте, в типовых конфай поиском набреите НаборЗаписей.создать() и посмотрите
    Vitaly нравится это.
  7. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    У регистра сведений СтатусыОС два измерения :Основное средство и Организация. Нашел код по образцу и подобию:
    НаборЗаписейСтатусыОС=РегистрыСведений.СтатусыОС.СоздатьНаборЗаписей();
    НаборЗаписейСтатусыОС.Отбор.ОсновноеСредство.Установить(СтатусОС[0].ОС);
    НаборЗаписейСтатусыОС.Отбор.Организация.Установить(СтатусОС[0].Организация);

    А мне выдает ошибку:
    {Форма.Форма.Форма(66)}: Поле объекта не обнаружено (ОсновноеСредство)
    НаборЗаписейСтатусыОС.Отбор.ОсновноеСредство.Установить(СтатусОС[0].ОС);
    --- Объединение сообщений, 8 апр 2015 ---
    С независимым регистратором такой отбор работает, а с подчиненным регистратором (как в моем случае) - не работает.
    Последнее редактирование: 8 апр 2015
  8. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Я получил значения но там не то что нужно:
    upload_2015-4-8_10-51-14.png
    Отбор по регистратору идет я так не могу изменить необходимые значения.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    На набор записи, подчиненный регистратору, накладывать доп. отбор по значениям измерений регистра не имеет смысла. Найдите в Наборе нужную строку и измените ее.
    Vitaly нравится это.
  10. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вы тогда конкретнее опишите вашу задачу.
    Просто в теме - нао изменить данные в РС, ну изменяйте их через НАборЗаписей, как все делают.
    Отбор делайте уже либо по полям либо по регистратору
    Vitaly нравится это.
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Отбора по полям для подчиненного РС нет, только отбор по регистратору.
    Получив набор регистратора, можно его всячески обработать и обратно записать как единое целое.
    Vitaly нравится это.
  12. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Я не понимаю.
    Я отобрал нужное значение.
    upload_2015-4-9_13-27-1.png
    Получается я не правильно сделал отбор?
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вам в этом какой РС и какие записи моменять надо.
    Сделали отбор по регистратору, прочитали их и циклом обошли набор записей что надо по условию проверили если да то изменили и перезаписали - в чем трудность?
  14. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Посмотрите мой скриншот. Отбор по регистратору я сделал. Прочитал. Данные после чтения на скриншоте.
    Но в этом объекте нет измерений и реквизитов, которые мне необходимо менять. Тут вообще фактически только регистратор, по какому я делал отбор.
  15. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну так это объет Набор записей - он как массив, там же не одна запись может быть - теперь циклом его обходите

    Код:
    НаборЗаписейСтатусыОС=РегистрыСведений.СобытияОСОрганизаций.СоздатьНаборЗаписей();
        НаборЗаписейСтатусыОС.Отбор.регистратор.значение = СсылкаНаобъект;
        НаборЗаписейСтатусыОС.Отбор.регистратор.использование = Истина;
        НаборЗаписейСтатусыОС.Отбор.регистратор.ВидСравнения = ВидСравнения.Равно;
        НаборЗаписейСтатусыОС.Прочитать();
       
        для каждого стр из НаборЗаписейСтатусыОС цикл
                  Сообщить( стр.Событие);
        КонецЦикла;
    --- Объединение сообщений, 9 апр 2015 ---
    Вот в стр будут все реквизиты которые нужны
    Vitaly нравится это.
  16. TopicStarter Overlay
    Vitaly
    Offline

    Vitaly Опытный в 1С

    Регистрация:
    21 фев 2014
    Сообщения:
    366
    Симпатии:
    0
    Баллы:
    26
    Спасибо, теперь понял. В этом была причина. Нужно в массиве обойти было набор записей.
  17. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну на то он и называется НАБОР, а не ЗАПИСЬ
    Vitaly нравится это.

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