|
Периодический независимый регистр сведений - добавление записи | ☑ | ||
---|---|---|---|---|
0
Uchenica74
28.11.13
✎
11:47
|
Добрый день! Написала обработку добавления записи в регистр сведений (Периодический независимый) и все бы ничего, но никак не могу добиться того что бы НОВАЯ запись добавилась. Подскажите пожалуйста, в чем ошиблась:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | Регистр.Период, | Регистр.Работа КАК Работа, | Регистр.НомерСтрокиШкалы КАК НомерСтрокиШкалы, | Регистр.Выработка, | Регистр.Процент |ИЗ | РегистрСведений.Регистр.СрезПоследних(&Дата, ) КАК РегистрСрезПоследних |ГДЕ | РегистрСрезПоследних.Работа = &Работа | |УПОРЯДОЧИТЬ ПО | Работа УБЫВ, | НомерСтрокиШкалы УБЫВ" ; Запрос.УстановитьПараметр("Работа",Работа); Запрос.УстановитьПараметр("Дата",НачалоДня(Дата)); Результат = Запрос.Выполнить().Выгрузить(); Для Каждого стр из Результат цикл НаборЗаписей = РегистрыСведений.Регистр.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Работа.Установить(стр.Работа); НаборЗаписей.Отбор.НомерСтрокиШкалы.Установить(стр.НомерСтрокиШкалы); НаборЗаписей.Отбор.Период.Установить(стр.Период); НовЗапись = НаборЗаписей.Добавить(); НовЗапись.Работа = стр.Работа; НовЗапись.НомерСтрокиШкалы = стр.НомерСтрокиШкалы; НовЗапись.Выработка = стр.Выработка; НовЗапись.Процент = 0; НовЗапись.Период = Дата; НаборЗаписей.Записать(); |
|||
1
Волшебник
модератор
28.11.13
✎
11:49
|
(0) Используй МенеджерЗаписи
|
|||
2
Maxus43
28.11.13
✎
11:49
|
НовЗапись.Период = стр.Период; тогда уж
|
|||
3
SUA
28.11.13
✎
11:52
|
фото?
и что будет если регистр еще пустой? Для Каждого стр из Результат цикл //не выполнится вообще |
|||
4
Uchenica74
28.11.13
✎
11:54
|
(2) мне нужно добавить новую запись с новым периодом, например: 01.10.2013 Уборка 80%, а мне нужна новая запись 01.11.2013 Уборка 0%
|
|||
5
Ярус
28.11.13
✎
11:54
|
после отборов добавь НаборЗаписей.Прочитать()
|
|||
6
Uchenica74
28.11.13
✎
11:55
|
(3)если регистр на данный вид работы пустой, тогда не нужна новая запись
|
|||
7
SUA
28.11.13
✎
11:55
|
(5)бред
(4)Отбор.Период.Установить(Дата) |
|||
8
Uchenica74
28.11.13
✎
11:59
|
Эта обработка не добавляет запись, а изменяет запись соответствующую отбору - не правильное действие. Мне нужны обе записи в регистре.
|
|||
9
Ярус
28.11.13
✎
12:00
|
(7)читай(8) и свое "бред" засунь себе
|
|||
10
КонецЦикла
28.11.13
✎
12:03
|
Вот пример "размножения" записей.
ТЗ = РегистрыСведений.Спецификации.СрезПоследних(ВыбДата + 86400, Структура); ТЗ.Колонки.Добавить("Контрагент"); ТЗ.Колонки.Добавить("ТипВагона"); ТЗ.Колонки.Добавить("Действует"); ТЗ.ЗаполнитьЗначения(ВыбДата, "Период"); ТЗ.ЗаполнитьЗначения(Истина, "Действует"); СчТр = 0; НачатьТранзакцию(); Выборка = Справочники.Контрагенты.ВыбратьИерархически(ГруппаПоставщиков); Пока Выборка.Следующий() = 1 Цикл Если Выборка.ПометкаУдаления Тогда Продолжить; КонецЕсли; Если Выборка.ЭтоГруппа Тогда Продолжить; КонецЕсли; Сообщить("Обрабатывается контрагент: " + Выборка.Наименование); ТЗ.ЗаполнитьЗначения(Выборка.Ссылка, "Контрагент"); Для Каждого ТекТипВагона из Перечисления.ТипыВагонов Цикл ТЗ.ЗаполнитьЗначения(ТекТипВагона, "ТипВагона"); Набор = РегистрыСведений.СпецификацииКонтрагентов.СоздатьНаборЗаписей(); Набор.Отбор.Период.Установить(ВыбДата); Набор.Отбор.Валюта.Установить(Валюта); Набор.Отбор.Контрагент.Установить(Выборка.Ссылка); Набор.Отбор.ТипВагона.Установить(ТекТипВагона); Набор.Загрузить(ТЗ); Набор.Записать(); СчТр = СчТр + 1; Если СчТр % 50 = 0 Тогда ЗафиксироватьТранзакцию(); НачатьТранзакцию(); КонецЕсли; Если СчТр % 500 = 0 Тогда ЗафиксироватьТранзакцию(); Прервать; КонецЕсли; КонецЦикла; КонецЦикла; ЗафиксироватьТранзакцию(); |
|||
11
КонецЦикла
28.11.13
✎
12:03
|
Тупенько, но работает :)
|
|||
12
Uchenica74
28.11.13
✎
12:03
|
(5)я добавила НаборЗаписей.Прочитать(), теперь ошибка вылетает "Запись не верна! Значение поля не соответствует установленному отбору: Уборка: 4 : 01.11.2013 0:00:00 (Регистр сведений: Регистр; Поле: Период)"
|
|||
13
Maxus43
28.11.13
✎
12:04
|
(4) ты отбор у набора ставишь на другую дату
|
|||
14
КонецЦикла
28.11.13
✎
12:05
|
(12) Сними отбор
Набор.Прочитать(); ТЗ = Набор.Выгрузить(); Набор.Отбор.Сбросить(); |
|||
15
Uchenica74
28.11.13
✎
12:08
|
(12) тогда затираются предыдущие записи
|
|||
16
Uchenica74
28.11.13
✎
12:09
|
Блин...тогда затираются предыдущие записи (14)
|
|||
17
Uchenica74
28.11.13
✎
12:11
|
(13)Исправила. Все работает. Спасибо!!!
|
|||
18
Maxus43
28.11.13
✎
12:11
|
(16) НаборЗаписей.Отбор.Период.Установить(Дата), а не стр.период
|
|||
19
Uchenica74
28.11.13
✎
12:14
|
(18) Да, да я в (17) Вас поблагодарила. Исправила. Все теперь работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |