8.х Запись в регистр накопления

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

  1. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! Дело в том, что у меня есть регистр накопления СчетчикБаллов (регистратор - ДокументРеалтзации). Я написал в модуле документа следующий код
    Код:
    ДокВыб = Документы.ДокументРеализации.Выбрать();
    РегВыб = РегистрыНакопления.СчетчикБаллов.СоздатьНаборЗаписей();
    РегВыб.Прочитать();
    НовыйРег = РегВыб.Добавить();
    НовыйРег.Контрагент="Вася";
    НовыйРег.Баллы=10;
    РегВыб.Записать();
    
    
    
    Но при проведении Документа вылезает ошибка:
    Ошибка при вызове метода контекста(Записать); Ошибка записи! Не установлен отбор по регистратору (Регистр накопления: Счетчик баллов)
    Я новичок в 1С:Предприятие (да и вообще в 1С). Объясните, что здесь не так, плиз?
  2. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Добавь

    Код:
    НовыйРег.Регистратор=ДокВыб.ЭтотОбъект();
    
    
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код:
    НовыйРег.Регистратор=ДокВыб; // Там же ссылка нужна...
    
    
  4. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Но у ДокВыб нету метода ЭтотОбъект()

    Опять вылезает то же сообщение об ошибке
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Поставь отбор по документу и...

    .. и не забудь указать Приход это или Расход
  6. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Да, запутался.
    Код:
    НовыйРег.Регистратор=ДокВыб.Ссылка;
    
    
    
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    vlashi,

    Там ссылка не нужна, так как дело из выборки идет и эта переменная и есть ссылка :)

    Тут проблема в использовании НабораЗаписей с неустановленным отбором + не создается запись в наборе.
  8. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Т.е написать добавить
    Код:
    РегВыб.Отбор.Добавить(Документы.ДокументРеализации);
    
    
    ?
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код:
    НаборЗаписей = РегистрыНакопления.ПартииТоваровНаСкладах.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(РегламентныйДокумент);
    
    
  10. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    К сожалению, эта ошибка так вылазет. именно на методу записать.
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Дык код покажи, что в итоге получилось...

    Указал, приход или расход у тебя?
    Покажи структуру регистра...
  12. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    У меня получился вот такой код:
    Код:
    ДокВыб = Документы.ДокументРеализации.Выбрать();
    РегВыб = РегистрыНакопления.СчетчикБаллов.СоздатьНаборЗаписей();
    РегВыб.Отбор.Регистратор.Установить(Документы.ДокументРеализации);
    НовыйРег = РегВыб.ДобавитьПриход();
    НовыйРег.Контрагент="Вася";
    НовыйРег.Баллы=10;
    НовыйРег.Регистратор = ДокВыб;
    РегВыб.Записать();
    
    
    Ошибка по-прежнемы вылазет(

    Структура Регистра Накопления: ИзмерениЯ - Контрагент, Ресурсы - Баллы. Регистратор - ДокументРеализации
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Прочитай пример с установкой отбор, который я привел, и сравни со своим - сразу исправишь ошибку.
  14. TopicStarter Overlay
    Kefis
    Offline

    Kefis

    Регистрация:
    11 фев 2008
    Сообщения:
    44
    Симпатии:
    0
    Баллы:
    1
    Я так понял, что ошибка в этой строке:
    Код:
    РегВыб.Отбор.Регистратор.Установить(Документы.ДокументРеализации);
    
    
    Ее надо исправить на
    Код:
    РегВыб.Отбор.Регистратор.Установить(ДокументРеализации);
    
    
    ?
    Если да, то вылезает другая ошибка: Переменная не определена (ДокументРеализации)

    Дайте, пожалуйста, ссылку, где можно прочитать вообще про работу с регистрами накопления?
  15. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Kostia,
    Рекомендую вам сходить на курсы - ибо вы не понимаете основных вещей! В СП четко написано - ссылка на объект, по которому ставиться отбор! А вы что пишете?...

    Код:
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
    НаборЗаписей = РегистрыНакопления.Баллы.СоздатьНаборЗаписей();
    Пока Выборка.Следующий() Цикл
    НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка);
    Запись = НаборЗаписей.ДобавитьПриход();
    Запись.Период = ТекущаяДата();
    Запись.Контрагент = Справочники.Контрагенты.НайтиПоКоду("Ю00000052");
    Запись.Баллы = 10;
    КонецЦикла; 
    НаборЗаписей.Записать();
    
    

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