Имя: Пароль:
1C
1С v8
Записи в регистр накопления
0 Dimaster
 
10.09.13
18:18
Собрал в таблицу значений записи, но почему то когда назад в набор записей запихиваю и делаю Записать() ничего не происходит!
НаборДвижений.ПроверитьЗаполнение() выдает Истина. Что не так то???
1 samozvanec
 
10.09.13
18:20
набор как получаешь?
2 Нуф-Нуф
 
10.09.13
18:21
Код давай
3 Dimaster
 
10.09.13
18:23
НаборДвиженийУчетЗатратРегл = Движения.УчетЗатратРегл;
     ТаблицаДвиженийУчетРегл = НаборДвиженийУчетЗатратРегл.Выгрузить();
     НаборДвиженийУчетЗатратРегл.Записывать = Истина;

...Тут где то добавляю в таблицу строки...

         ТаблицаДвиженийУчетРегл.Свернуть("МоментВремени, Регистратор, Период,ВидДвижения,АналитикаВидаУчета,АналитикаУчетаЗатрат,АналитикаУчетаПартий,АналитикаРаспределенияЗатрат,Активность,КорАналитикаВидаУчета,КорАналитикаУчетаЗатрат,КорАналитикаУчетаПартий,КорАналитикаРаспределенияЗатрат,КодОперации", "Количество,Стоимость");
         НаборДвиженийУчетЗатратРегл.Загрузить(ТаблицаДвиженийУчетРегл);
         НаборДвиженийУчетЗатратРегл.УстановитьАктивность(Истина);
         Проверка = НаборДвиженийУчетЗатратРегл.ПроверитьЗаполнение(); // типа пробую проверить
         //НаборДвиженийУчетЗатратРегл.Записать(); - и так пробовал
         Движения.УчетЗатратРегл.Загрузить(ТаблицаДвиженийУчетРегл);
         Движения.УчетЗатратРегл.Записать(); // и сяк
4 Dimaster
 
10.09.13
18:46
(2) ну что там?
5 Лефмихалыч
 
10.09.13
18:58
(0) >ничего не происходит!
а чего ты ожидаешь?
6 Dimaster
 
10.09.13
19:00
(5) Добавления записей в регистр накопления, неясно чтоли?
7 Лефмихалыч
 
10.09.13
19:01
проблема вот в этой строчке
"...Тут где то добавляю в таблицу строки..."
8 Dimaster
 
10.09.13
19:03
(7) Что там не так? давай обсудим это
9 Dimaster
 
10.09.13
19:12
(7) если там что то неправильно, то почему проверка заполнения ничего не выдает?
10 Dimaster
 
10.09.13
19:18
Я уже и так попробовал - ни в какую записывать не желает!          НаборЗаписей = РегистрыНакопления.УчетЗатратРегл.СоздатьНаборЗаписей();
         НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
         НаборЗаписей.Загрузить(ТаблицаДвиженийУчетРегл);
         НаборЗаписей.Записать();
11 Dimaster
 
10.09.13
19:28
Ну емое, че никто из прошаренных прогеров не может четко сказать что надо сделать по другому?
12 Лефмихалыч
 
10.09.13
19:29
(9) потому, что проверка заполнение делает не то, что ты думаешь
13 Dimaster
 
10.09.13
19:31
(12) А конструктивное что то ты можешь сказать? я заполняю все измерения и ресурсы, вид движения, период. Что еще ему надо??? Даже потом пробовал активность и регистратор ставить
14 Лефмихалыч
 
10.09.13
19:34
(13) могу конструктивное, вот смотри: воспользуйся отладчиком
15 Dimaster
 
10.09.13
19:35
(14) ты думаешь я не смотрел туда отладчиком?
16 Лефмихалыч
 
10.09.13
19:39
(15) понятия не имею. Попробуй посмотреть с открытыми глазами, если в тот раз не получилось
17 hhhh
 
10.09.13
22:06
(15) а это проверил?

РегистрНакопленияНаборЗаписей.<Имя регистра накопления> (AccumulationRegisterRecordSet.<Имя регистра накопления>)
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
Синтаксис:

ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:

<Отказ>

Тип: Булево.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то будет выполнен отказ от продолжения работы после выполнения проверки заполнения.
Значение по умолчанию: Ложь
<ПроверяемыеРеквизиты>

Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Описание:

Вызывается расширением формы при необходимости проверки заполнения реквизитов при записи в форме, а также при выполнении метода ПроверитьЗаполнение.
Позволяет разработчику конфигурации самостоятельно реализовать проверку заполнения в обработчике события. При этом в обработчике можно полностью отказаться от системной обработки (очистив список проверяемых реквизитов), отказаться от проверки системой части реквизитов (выполнив проверку отдельных реквизитов особенным образом и исключив эти реквизиты из списка), а также добавить для проверки другие реквизиты, проверка которых не была указана.
Пример:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

// Сообщим платформе, что мы сами обрабатываем проверку реквизита Организация
ПроверяемыеРеквизиты.Удалить(ПроверяемыеРеквизиты.Найти("Организация"));

Для Каждого Проводка Из ЭтотОбъект Цикл
    Индекс = ЭтотОбъект.Индекс(Проводка)
    Если Не ЗначениеЗаполнено(Проводка.Организация) Тогда
        Сообщение = Новый СообщениеПользователю();
        Сообщение.Текст = "В строке " + Индекс + " не указана Организация";
        Сообщение.Поле = "[" + Индекс + "].Организация";
        Сообщение.УстановитьДанные(ЭтотОбъект);
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;
КонецЦикла;

КонецПроцедуры
18 mistеr
 
11.09.13
00:06
(3) Начнем с того, что набор движений изначально пустой, потому что его никто не прочитал из базы.
19 hhhh
 
11.09.13
01:43
(18) как же?  Вот

НаборДвиженийУчетЗатратРегл = Движения.УчетЗатратРегл;
20 Dimaster
 
11.09.13
01:49
Короче в итоге получилось так: движения вписываю в Движения.УчетЗатратРегл, потом

ТаблицаДвиженийУчетРегл = Движения.УчетЗатратРегл.Выгрузить();
         ТаблицаДвиженийУчетРегл.Свернуть("Период,ВидДвижения,АналитикаВидаУчета,АналитикаУчетаЗатрат,АналитикаУчетаПартий,АналитикаРаспределенияЗатрат,Активность,КорАналитикаВидаУчета,КорАналитикаУчетаЗатрат,КорАналитикаУчетаПартий,КорАналитикаРаспределенияЗатрат,КодОперации", "Количество,Стоимость");
         Движения.УчетЗатратРегл.Загрузить(ТаблицаДвиженийУчетРегл);
         Движения.УчетЗатратРегл.Записать();
21 Dimaster
 
11.09.13
01:49
Правда не знаю, оптимизирует это вообще хоть что то))
22 mistеr
 
11.09.13
08:41
(19) Это разве чтение?
23 Defender aka LINN
 
11.09.13
08:45
(20) А что этот код делает? Делает из 9 строк 8?
24 hhhh
 
11.09.13
09:12
(22) не чтение, просто откуда вы взяли, что Движения.УчетЗатратРегл пустой? Может там на этот момент уже добавлено штук 200-300 записей?
25 Dimaster
 
11.09.13
13:34
(23) из 3900 делает 39 иногда даже...
26 Dimaster
 
11.09.13
13:34
Что то у меня нет ощущения что стало быстрее, что еще можно посоветовать?
Независимо от того, куда вы едете — это в гору и против ветра!