|
Как записать данные в регистр накопления | ☑ | ||
---|---|---|---|---|
0
SherifSP
03.09.12
✎
12:20
|
Как записать данные в регистр накопления. В документ посредством метода ПолучитьОбъект(). А в регистр накопления?
|
|||
1
SherifSP
03.09.12
✎
12:21
|
мРегистр = ЭлементыФормы.Флажок1.Значение;
Если мРегистр = Истина Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 10 | Продажи.Регистратор, | Продажи.Подразделение |ИЗ | РегистрНакопления.Продажи КАК Продажи |ГДЕ | Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон"; Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ДатаКон", ДатаКон); ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Подразделение) Тогда //Как здесь записать. КонецЕсли; КонецЦикла; Иначе Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 10 | РеализацияТоваровУслуг.Ссылка, | РеализацияТоваровУслуг.Подразделение |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон"; Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ДатаКон", ДатаКон); ТЗ = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Подразделение) Тогда Объект = Стр.Ссылка.ПолучитьОбъект(); Объект.Подразделение = Подразделение; Объект.Записать(); КонецЕсли; КонецЦикла; КонецЕсли; |
|||
2
Axel2009
03.09.12
✎
12:21
|
записать через получитьобъект()?
|
|||
3
SherifSP
03.09.12
✎
12:22
|
(2) В документ да
|
|||
4
salvator
03.09.12
✎
12:24
|
создать набор записей, отобрать по регистратору, прочитать, добавить, записать.
|
|||
5
SherifSP
03.09.12
✎
12:25
|
(4) Мне нужно редактировать текущую запись, а не добавлять новую
|
|||
6
skunk
03.09.12
✎
12:27
|
установить нужный отбор
прочитать изменить записать |
|||
7
salvator
03.09.12
✎
12:27
|
(5) ок, замени 4-й этап на "изменить"
|
|||
8
SherifSP
03.09.12
✎
12:29
|
Спс
|
|||
9
SherifSP
03.09.12
✎
12:30
|
У меня в сп нет метода прочитать
|
|||
10
SherifSP
03.09.12
✎
12:37
|
||||
11
salvator
03.09.12
✎
12:47
|
(10) см (4), п.1
|
|||
12
SherifSP
03.09.12
✎
12:53
|
(11) Для Каждого Стр Из ТЗ Цикл
Если Не ЗначениеЗаполнено(Стр.Подразделение) Тогда Движения = РегистрыНакопления.Продажи.ВыбратьПоРегистратору(Стр.Регистратор); КонецЕсли; КонецЦикла; |
|||
13
SherifSP
03.09.12
✎
14:50
|
ТЗ = Запрос.Выполнить().Выгрузить();
Для Каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Подразделение) Тогда Набор = РегистрыНакопления.Продажи.СоздатьНаборЗаписей(); Набор.Отбор.Регистратор.Значение = СТр.Регистратор; Набор.Отбор.Регистратор.Значение.Подразделение = Подразделение; Набор.Записать(); КонецЕсли; КонецЦикла; {Форма.Форма(29)}: Поле объекта недоступно для записи (Подразделение) Набор.Отбор.Регистратор.Значение.Подразделение = Подразделение; |
|||
14
Aprobator
03.09.12
✎
14:51
|
(13) жуть какая.
|
|||
15
SherifSP
03.09.12
✎
14:58
|
(14) Почему?
|
|||
16
Aprobator
03.09.12
✎
14:58
|
мало того, что условие не в запрос закатал на подразделение, так еще и в регистре пытаешься оставить инфу только по регистратору, плюс у регистратора (причем у ссылки, а не объекта), подменить реквизит. Просто офигеть.
|
|||
17
rutony
03.09.12
✎
14:59
|
(15) /*facepalm/*
Набор.Отбор.Регистратор.Значение.Подразделение = Подразделение; |
|||
18
Aprobator
03.09.12
✎
15:02
|
хорошо еще, что ошибка по подразделению выскочила. Так бы часть данных по продажам в регистре расфигачил в аут.
|
|||
19
SherifSP
03.09.12
✎
15:03
|
(18)Не страшно я на тестовой работаю
|
|||
20
SherifSP
03.09.12
✎
15:03
|
(16)Условие не нужно в запросе
|
|||
21
SherifSP
03.09.12
✎
15:04
|
(16)По подразделению
|
|||
22
SherifSP
03.09.12
✎
15:05
|
Хз что его тут придумать
|
|||
23
Aprobator
03.09.12
✎
15:06
|
а что тут думать? Работу меняй. 1С ты не тянешь.
|
|||
24
salvator
03.09.12
✎
15:08
|
(20) Проще сделать отбор по подразделению сразу в запросе, чем потом в цикле проверять
|
|||
25
hhhh
03.09.12
✎
15:08
|
(22) отбор только по регистратору можно. Про подразделения забудь.
|
|||
26
SherifSP
03.09.12
✎
15:10
|
Запрос у меня нормальный
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 10 | Продажи.Регистратор, | Продажи.Подразделение |ИЗ | РегистрНакопления.Продажи КАК Продажи |ГДЕ | Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон | И Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг"; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон)); ТЗ = Запрос.Выполнить().Выгрузить(); |
|||
27
Aprobator
03.09.12
✎
15:10
|
народ ну хоть вы то меня не смешите.
Каким образом кодом в (13) можно поправить записи сделанные документом? Не код, а ляп на ляпе. Ввиду полного непонимания процесса как такогого. |
|||
28
Aprobator
03.09.12
✎
15:10
|
(26) ик ик ик.
|
|||
29
Aprobator
03.09.12
✎
15:12
|
впрочем для тупого перебора - сойдет. Отвык я как то от запросов к регистрам накопления без запроса ресурсов.
|
|||
30
SherifSP
03.09.12
✎
15:12
|
Можно конечно и в запросе проверять подразделение)
|
|||
31
Aprobator
03.09.12
✎
15:13
|
ладно - пшел я работать. А то от таких тем и одуреть недолго.
|
|||
32
SherifSP
03.09.12
✎
15:14
|
(31))
|
|||
33
hhhh
03.09.12
✎
15:20
|
(30) а смысл? Набор пишется целиком, старый стирается, новый записывается. Одну строчку у него невозможно изменить, хоть вы головой об стенку бейтесь.
|
|||
34
SherifSP
03.09.12
✎
15:25
|
Набор = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
Док = Набор.Отбор.Регистратор; Док.Установить(Стр.Регистратор); Набор.Прочитать(); Набор.Записать(); |
|||
35
Trier
03.09.12
✎
15:38
|
собрались спецы блин...
(33)Чой-то нельзя одну строчку в наборе изменить? Хоть одну, хоть через одну (34)Это шедеврально. 5 строк кода, которые не делают в результате НИЧЕГО. Блеск. а вообще ТС, задумайся насчет (23). Нельзя быть программистом 1с, не зная как писать данные в регистр. |
|||
36
SherifSP
03.09.12
✎
15:39
|
Шериф тебе толком могу помочь только я, на вот готовое решение
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 10 | Продажи.Регистратор, | Продажи.Подразделение |ИЗ | РегистрНакопления.Продажи КАК Продажи |ГДЕ | Продажи.Период МЕЖДУ &ДатаНач И &ДатаКон | И Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг"; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(ДатаНач)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон)); ТЗ = Запрос.Выполнить().Выбрать(); НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей(); Пока ТЗ.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(ТЗ.Регистратор); НаборЗаписей.Прочитать(); Если Не ЗначениеЗаполнено(ТЗ.Подразделение) Тогда Для Каждого ТекЗапись Из НаборЗаписей Цикл ТекЗапись.Подразделение = Подразделение; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; КонецЦикла; |
|||
37
SherifSP
03.09.12
✎
15:40
|
(36) Ой, спасибо тебе друг!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |