Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:14

Не хочет записывать набор записей регистра

Автор DirecTwiX, 05 мая 2012, 20:35

0 Пользователей и 1 гость просматривают эту тему.

DirecTwiX

Пошагово проверял - в конце процедуры Набор содержит заполненные колонки СуммаРуб и СуммаДол, но после Набор.Записать() они остаются пустые. В чём может быть проблема?
ЦитироватьПроцедура РасчетОН(Ссылка) Экспорт
   Набор = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
   Набор.Отбор.Регистратор.Установить(Ссылка);
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |   ОсновныеНачисленияДанныеГрафика.НомерСтроки,
   |   ОсновныеНачисленияДанныеГрафика.ВидРасчета,
   |   ОсновныеНачисленияДанныеГрафика.Сотрудник,
   |   ОсновныеНачисленияДанныеГрафика.Подразделение,
   |   ОсновныеНачисленияДанныеГрафика.Размер,
   |   ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия,
   |   Ставки.Сумма
   |ИЗ
   |   РегистрРасчета.ОсновныеНачисления.ДанныеГрафика(Регистратор = &Регистратор) КАК ОсновныеНачисленияДанныеГрафика
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Ставки КАК Ставки
   |      ПО ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия >= Ставки.Мин
   |         И ОсновныеНачисленияДанныеГрафика.ЗначениеФактическийПериодДействия < Ставки.Макс
   |         И ОсновныеНачисленияДанныеГрафика.Подразделение = Ставки.Подразделение";
   Запрос.УстановитьПараметр("Регистратор", Ссылка);
   Результат = Запрос.Выполнить();
   
   Выборка = Результат.Выбрать();
   Отбор = Новый Структура;
   Отбор.Вставить("Валюта", Справочники.Валюты.НайтиПоНаименованию("Доллар"));
   КурсДоллара = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(Ссылка.Дата, Отбор).Курс;   
   Отбор.Удалить("Валюта");
   Отбор.Вставить("НомерСтроки");
   Для каждого Стр Из Набор Цикл
      Отбор.НомерСтроки = Стр.НомерСтроки;
      Выборка.Сбросить();
      Если Выборка.НайтиСледующий(Отбор) Тогда
         Если Выборка.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда
            Стр.СуммаРуб = Выборка.ЗначениеФактическийПериодДействия * Выборка.Сумма;
            Стр.СуммаДол = стр.СуммаРуб / КурсДоллара;
         КонецЕсли;    
      КонецЕсли;
   КонецЦикла;
   Набор.Записать();
   
КонецПроцедуры

sergejK74

РегистрыРасчета.ОсновныеНачисления.Записывать = Истина; не помогает?
Кнопочка Спасибо - слева!

DirecTwiX

Такого свойства нет.
Оно только у Движения.ОсновныеНач...
Но Движения доступны только в модуле объекта-регистратора. В обработке проведения, перед вызовом этой процедуры, установлено
Движения.ОсновныеНачисления.Записывать = Истина;

sergejK74

Точно, Движения.....
Передай Движеня из объекта регистратора в свою процедуру Процедура РасчетОН(Ссылка, Движения) Экспорт
Кнопочка Спасибо - слева!

DirecTwiX

Нет, не работает..
У меня скоро психоз начнётся...

Буду очень признателен, если кто-то соизволит посмотреть выгрузку (документ НачислениеЗарплаты) или предложит какой-нибудь выход..

DirecTwiX

В обработке проведения надо было убрать "Движения.ОсновныеНачисления.Записывать = Истина;"
Ну и бред...

Dethmontt

Набор = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Ссылка);
Набор.Прочитать();
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sergejK74

Кнопочка Спасибо - слева!

DirecTwiX

Цитата: Dethmontt от 05 мая 2012, 22:46
Набор = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Ссылка);
Набор.Прочитать();
У меня в модуле стояло прочитать) Но если в модуле стоит "Движения.ОсновныеНачисления.Записывать = Истина;", то он потом не запишет набор. Но за уделённое время спасибо)

sergejK74, оригинально) Спасибо

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск