![]() |
|
Заполнение ТЗ по другой ТЗ | ☑ | ||
---|---|---|---|---|
0
Bigbro
19.11.13
✎
08:31
|
Я плохо знаю 8ку, прошу подскажите у кого опыта побольше.
Ситуация - есть регистр сведений, периодический. в нем хранятся свойства объектов. различные. требуется для тех объектов у которых задано одно из свойств - задать другое (в соответствии с таблицей), на текущую дату. Запрос я сваял, данные вытащил, а вот как эффективно теперь подменить в ТЗ одно свойство и значение свойства другими по моей табличке? Тупой перебор делать не охота, чувствую что в 8ке для этого должны быть методы. |
|||
1
Bigbro
19.11.13
✎
08:32
|
да, из ТЗ потом обратно набор записей создается, тут уже проблем быть не должно.
|
|||
2
chelentano
19.11.13
✎
08:34
|
(1) если значения могут быть разными, тогда без перебора не обойтись, если новое значение только одно - смотри метод ЗаполнитьЗначения()
|
|||
3
Bigbro
19.11.13
✎
08:39
|
среди значения свойства конечно будут и повторяющиеся. количество различных значений думаю на пару порядков меньше чем все количество значений. исходя из этого хочется оптимизировать.
|
|||
4
Bigbro
19.11.13
✎
09:11
|
пока вижу только вариант для каждой строки из ТЗ соответствия сделать .найтиСтроки() по основной таблице, внести изменения. Затем .Заполнить() поставлю нужную дату и после этого грузим тз в набор записей.
|
|||
5
Cube
19.11.13
✎
09:13
|
(4) Ничего не понятно. И непонятно, почему зпрос не может тебе соединить эти две ТЗ?
|
|||
6
Bigbro
19.11.13
✎
09:20
|
про запрос пожалуйста подробнее.
попробую пояснить, вот тз основная: 01-01-2013 проц_i3 комп1 01-02-2013 проц_i5 комп2 01-03-2013 проц_i3 комп3 вот тз соответствия проц_i3 4 проц_i5 5 проц_core2_2600 3 и т.д. нужно сформировать 19-11-2013 комп1 4 19-11-2013 комп2 5 19-11-2013 комп3 4 для записи в регистр сведенйи другого свойства. |
|||
7
Cube
19.11.13
✎
09:22
|
(6) Ты давай код, что ты нам тут белиберду свою суешь)))
|
|||
8
Bigbro
19.11.13
✎
09:24
|
так если бы у меня был код я бы не задавал вопрос)
или тебе какой код нужен? запроса который тз получает? он простейший вот он Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектовСрезПоследних.Период, | ЗначенияСвойствОбъектовСрезПоследних.Объект, | ЗначенияСвойствОбъектовСрезПоследних.Свойство, | ЗначенияСвойствОбъектовСрезПоследних.Значение |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов.СрезПоследних КАК ЗначенияСвойствОбъектовСрезПоследних |ГДЕ | ЗначенияСвойствОбъектовСрезПоследних.Свойство = &ТипПроцессора | И ЗначенияСвойствОбъектовСрезПоследних.Объект В иерархии (&ГруппаНоменклатуры)"; Запрос.УстановитьПараметр("ТипПроцессора",_типПроц); Запрос.УстановитьПараметр("ГруппаНоменклатуры",_грНом); рез=Запрос.Выполнить(); |
|||
9
Рэйв
19.11.13
✎
09:26
|
(0)да сделай ты перебором одной ТЗ через .НайтиСтроки() во второй.
Акция разовая я так понимаю.Чего мудрить то? |
|||
10
Bigbro
19.11.13
✎
09:27
|
сделаю конечно. но думал есть другие методы. 8ка ж мощнее. по крайней мере запросы мне в ней нравятся. очень.
|
|||
11
el7cartel
19.11.13
✎
09:27
|
(0) а если попробовать соединить все в запросе! т.е. тянешь данные из регистра сведений, и из ТЗ!
|
|||
12
Рэйв
19.11.13
✎
09:28
|
(10)Ну если хочется поизвращаться, то можешь загнать обе ТЗ в запрос в ВТ и соединить
|
|||
13
Bigbro
19.11.13
✎
09:28
|
(11) можно пример для моего случая?
|
|||
14
Cube
19.11.13
✎
09:29
|
(8) Ну вот, суй в этот запрос свою ТЗ (а может её тоже из какого-нить РС можно дернуть?) и соединяй их в запросе...
|
|||
15
Cube
19.11.13
✎
09:30
|
(13) Вторая ТЗ откуда появилась? Как ты её получил?
|
|||
16
el7cartel
19.11.13
✎
09:31
|
(12) а зачем извращаться, если есть поле соединения, то никаких проблем!
|
|||
17
Bigbro
19.11.13
✎
09:32
|
вторая тз на форме табличного документа задается - просто из экселя копируются данные.
я не знаю как в запрос передать тз извне, научите) |
|||
18
Bigbro
19.11.13
✎
09:33
|
если бы в базе было соответствия я бы выдернул и сделал внутреннее соединение по процессору.
|
|||
19
Лодырь
19.11.13
✎
09:35
|
(17) Засосать в таблицу значений, загрузить запросом во временную таблицу
|
|||
20
Cube
19.11.13
✎
09:36
|
(17) Как-то так:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МояТЗ.Колоночка1, | МояТЗ.Колоночка2 |ПОМЕСТИТЬ МояТЗ |ИЗ | &МояТЗ КАК МояТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МояТЗ.Колоночка1, | МояТЗ.Колоночка2 |ИЗ | МояТЗ КАК МояТЗ"; Запрос.УстановитьПараметр("МояТЗ", ); |
|||
21
el7cartel
19.11.13
✎
09:36
|
(17) ну а связь эих данных с данными из регистра сведений есть? если да, то делайте через запрос! посмотрите про менеджер временных таблиц, нужно чтобы данные из ТЗ в запрос отправить
|
|||
22
Cube
19.11.13
✎
09:41
|
(21) Если в одном запросе всё делать, то менеджер временных таблиц не нужен.
|
|||
23
Bigbro
19.11.13
✎
10:30
|
всем спасибо) как то в голову не пришло что в параметры и тз можно передать и в ней потом обращаться.
сейчас сделаем все как у людей) |
|||
24
Bigbro
21.11.13
✎
13:32
|
еще немного помучался с временными таблицами, типизацией ТЗ для загрузки, но в итоге получилось.
вывод - надо больше и чаще писать под 8ку )) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |