|
v7: Редактирование записей Оборотного регистра 7.7 | ☑ | ||
---|---|---|---|---|
0
web_profiler
17.07.15
✎
13:12
|
Сразу прошу прощение за повторение избитой темы, но помогите разобраться с вопросом.
Есть некий оборотный регистр в 7.7, у него есть измерения: Фирма,Склад, Товар. Ресурсы: Колво, Сумма. Реквизиты: ПрихДокумент. В регистре куча записей. И вот тут я решил добавить еще один ресурс СуммаВалютная. Добавил ресурс, курсы валют есть. Как мне, без перепроведения документов, заполнить значениями ресурс СуммаВалютная? |
|||
1
OnCheck
17.07.15
✎
13:12
|
ни как
|
|||
2
web_profiler
17.07.15
✎
13:14
|
а мож создать рядышком документ корректировка регистра и туда продублировать все записи с моим пересчитанным ресурсом СуммаВалютная, а ресурс Сумма не заполнять?
|
|||
3
OnCheck
17.07.15
✎
13:14
|
а куда деть движения самих документов?
|
|||
4
web_profiler
17.07.15
✎
13:14
|
остаются
|
|||
5
web_profiler
17.07.15
✎
13:15
|
там валютной суммы просто не будет
|
|||
6
web_profiler
17.07.15
✎
13:15
|
а валютная сумма будет в доке "Корректировка регистров" по аналогии свертки базы
|
|||
7
OnCheck
17.07.15
✎
13:15
|
почти ок но по регистратору не грпппируются
|
|||
8
web_profiler
17.07.15
✎
13:17
|
а мне походу и не надо, так как необходимы валютные суммы для отчета, который выводится следующим запросом
Если Дата2 >= ПолучитьДатуТА() Тогда ТекстЗапроса = " |Период с Дата1;"; Иначе ТекстЗапроса = " |Период с Дата1 по Дата2;"; КонецЕсли; ТекстЗапроса = ТекстЗапроса + "Фирма = Регистр.Обороты.Фирма; |ВидДеятельности = Регистр.Обороты.ВидДеятельности; |Склад = Регистр.Обороты.ДопИзмерение1; |РасходСум = Регистр.Обороты.РасходСум; |Доход = Регистр.Обороты.Доход; |РасходСумВал = Регистр.Обороты.РасходСумВал; |ДоходВал = Регистр.Обороты.ДоходВал; |Функция РасходСумСумма = Сумма(РасходСум); |Функция ДоходСумма = Сумма(Доход); |Функция РасходСумСуммаВал = Сумма(РасходСумВал); |Функция ДоходСуммаВал = Сумма(ДоходВал); |Группировка ВидДеятельности без групп; |Группировка Склад без групп; |Условие (Фирма = ВыбФирма); |Условие (ВидДеятельности в СписВидД); |"; |
|||
9
web_profiler
17.07.15
✎
13:18
|
мне надо подкорректировать существующие записи а при проведении новых доков - все будет по правильному по регистру писаться
|
|||
10
OnCheck
17.07.15
✎
13:19
|
существующие записи по любому не будут редактированы, создаются новые. Но в рамках поставленной задачи проблем не вижу.
|
|||
11
web_profiler
17.07.15
✎
13:22
|
Т.е. я правильно мыслю, что мне нужна полная копия каждой записи, но с единственным отличием: Сумма = 0, СуммаВалютная = Сумма * курс/кратность
|
|||
12
web_profiler
17.07.15
✎
13:22
|
правильно я понял?
|
|||
13
OnCheck
17.07.15
✎
13:22
|
верно, чтобы группировались
|
|||
14
web_profiler
17.07.15
✎
13:22
|
а в таком случае колво не задвоится ли по регистру?
|
|||
15
OnCheck
17.07.15
✎
13:23
|
конечно количество = 0 для новых строк если это ресурс
|
|||
16
web_profiler
17.07.15
✎
13:24
|
т.е. все ненужные мне ресурсы = 0
|
|||
17
OnCheck
17.07.15
✎
13:26
|
Насколько помню в 77 есть ресурсы, измерения и реквизиты, поправь если вру, так вот Измерения должны совпадать 1 в 1, ресурсы = 0 кроме СуммаВалютная, реквизиты - все равно.
|
|||
18
web_profiler
17.07.15
✎
13:26
|
ага, все верно, спасибо
|
|||
19
OnCheck
17.07.15
✎
13:26
|
ты ж вроде сам все понимаешь, вот и подумай что будет при группировке.
|
|||
20
web_profiler
17.07.15
✎
13:27
|
понимаю, волшебный пинок жду
|
|||
21
trdm
17.07.15
✎
13:56
|
SQL база? Если да - прямым запросом пройдись и напихай.
У меня время от времени такое морочиво начинанется. Но с регистрами надо выморачиваться. + обработка пересчета итогов нужна на прямых запросах. |
|||
22
web_profiler
17.07.15
✎
16:13
|
База sql. я на sql запросы еще не писал. как получить записи регистра прямым запросом и заполнить ресурс СуммаВалютная = Сумма * курс/кратность?
Вот мой запрос получения записей в 7.7 "//{{ЗАПРОС(Сформировать) |Период с ДатаН по ДатаК; |Фирма = Регистр.Обороты.Фирма; |Товар = Регистр.Обороты.Товар; |Статус = Регистр.Обороты.Статус; |Покупатель = Регистр.Обороты.Покупатель; |Поставщик = Регистр.Обороты.Поставщик; |ДопИзмерение1 = Регистр.Обороты.ДопИзмерение1; |ДопИзмерение2 = Регистр.Обороты.ДопИзмерение2; |ВидДеятельности = Регистр.Обороты.ВидДеятельности; |ПриходСум = Регистр.Обороты.ПриходСум; |РасходСум = Регистр.Обороты.РасходСум; |Доход = Регистр.Обороты.Доход; |ТекущийДокумент = Регистр.Обороты.ТекущийДокумент; |Функция ПриходСумСумма = Сумма(ПриходСум); |Функция РасходСумСумма = Сумма(РасходСум); |Функция ДоходСумма = Сумма(Доход); |Группировка ТекущийДокумент без групп; |Группировка Фирма без групп; |Группировка Товар без групп; |Группировка Статус без групп; |Группировка Покупатель без групп; |Группировка Поставщик без групп; |Группировка ДопИзмерение1 без групп; |Группировка ДопИзмерение2 без групп; |Группировка ВидДеятельности без групп; |"; |
|||
23
trdm
17.07.15
✎
17:30
|
(22) > как получить записи регистра прямым запросом и заполнить ресурс СуммаВалютная = Сумма * курс/кратность?
Используй 1С++ вРекордСет = СоздатьОбъект("ODBCRecordset"); //вРекордСет.УстановитьТекстовыйПараметр("ВыбФирма",ВыбФирма); //вРекордСет.УложитьСписокОбъектов(ВыбТовар,"#ВыбТовар"); ТекстЗапроса = " |-- ВыбТовар=Справочник.Номенклатура |-- ВыбЧето=Перечисление.Булево.Да |-- ВыбЧето=Дата |-- НачДата=ДатаШаблон(ПолучитьДатуТА()-2*365) |-- КонДата=ДатаШаблон(ПолучитьДатуТА()) |SELECT TOP 50 | * |FROM | $Регистр.НекийРегистр as регПТ(NOLOCK) |WHERE | НекиеТвоиУсловия |"; вТаблаЗнач = СоздатьОбъект("ТаблицаЗначений"); глОбработатьЗапросНаМакроПараметры(ТекстЗапроса, вРекордСет); Попытка вТаблаЗнач = вРекордСет.ВыполнитьИнструкцию(ТекстЗапроса); глПечатьТаблицыЗначений(вТаблаЗнач); //глПросмотрОбъекта(вТаблаЗнач); //глПросмотрОбъекта(ТекстЗапроса); Исключение Сообщить(ОписаниеОшибки()+"[201507171727]"); вТаблаЗнач = СоздатьОбъект("ТаблицаЗначений"); КонецПопытки; вТаблаЗнач.ВыбратьСтроки(); Пока вТаблаЗнач.ПолучитьСтроку() = 1 Цикл КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |