|   |   | 
| 
 | Заполнение ТЗ по другой ТЗ | ☑ | ||
|---|---|---|---|---|
| 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ку )) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |