|
Изменить документ | ☑ | ||
---|---|---|---|---|
0
azeml
06.07.14
✎
13:43
|
Доброго дня !
ДОПОМОЖІТЬ з такою проблемою вроді все правильно роблю.Мені потрібно замінити число документа і тип цен.До документа підключається. инд = 1; Дата2= ТекущаяДата(); провед = Ложь; Виборка = Новый Запрос; Виборка.УстановитьПараметр("Дата1",Дата); Виборка.УстановитьПараметр("Дата2",Дата2); Виборка.УстановитьПараметр("Провед",провед); Виборка.Текст= "ВЫБРАТЬ | ЗаказПокупателя.Дата, | ЗаказПокупателя.Проведен, | ЗаказПокупателя.ТипЦен, | ЗаказПокупателя.Контрагент, | ДоговорыКонтрагентов.ТипЦен КАК ТипЦен1, | ЗаказПокупателя.Ссылка, | ЗаказПокупателя.Номер, | ДоговорыКонтрагентов.ТипЦен.Код |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ПО ЗаказПокупателя.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка |ГДЕ | ЗаказПокупателя.Дата МЕЖДУ &Дата1 И &Дата2 | И ЗаказПокупателя.Проведен = &Провед"; Реззап = Виборка.Выполнить().Выбрать(); Пока Реззап.Следующий() Цикл Состояние(инд); инд = инд + 1; Если Реззап.ТипЦен <> Реззап.ТипЦен1 Тогда Цена= Справочники.ТипыЦенНоменклатуры.НайтиПоКоду(Реззап.ТипЦенКод); заказ = Документы.ЗаказПокупателя.НайтиПоНомеру(Реззап.Номер , Реззап.Дата); заказ.ПолучитьОбъект().ТипЦен = Цена; заказ.ПолучитьОбъект().Дата = ТекущаяДата(); заказ.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Запись); КонецЕсли; КонецЦикла; |
|||
1
Armando
06.07.14
✎
13:46
|
||||
2
Armando
06.07.14
✎
13:47
|
заказ.ПолучитьОбъект()
одного раза достаточно |
|||
3
azeml
06.07.14
✎
13:47
|
Здравствуйте!
ПОМОГИТЕ с такой проблемой вроде все правильно делаю. Мне нужно заменить число документа и тип цен.До документа подключается. |
|||
4
Бешеная Нога
06.07.14
✎
13:48
|
Имхо тема - попытка вброса гамна на вентилятор. До этого автор вполне сносно задавал вопросы на русском языке
|
|||
5
azeml
06.07.14
✎
13:49
|
сори
|
|||
6
oslokot
06.07.14
✎
13:49
|
(3) да вы полиглот прям
|
|||
7
oslokot
06.07.14
✎
13:50
|
А это украинский или суржик?
|
|||
8
Wobland
06.07.14
✎
13:51
|
ссылки из запроса принципиально не хочешь доставать или запрещает кто?
|
|||
9
Wobland
06.07.14
✎
13:52
|
(8) то бишь пользоваться ими
|
|||
10
Vladal
06.07.14
✎
13:56
|
заказ = Документы.ЗаказПокупателя.НайтиПоНомеру(Реззап.Номер , Реззап.Дата);
заказ.ПолучитьОбъект().ТипЦен = Цена; заказ.ПолучитьОбъект().Дата = ТекущаяДата(); заказ.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Запись); ПолучитьОБъект() - Правильно всё остальное неправильно. По сути ты каждый раз получаешь объект не записывая. Получил объект, изменил цену, объект не записал Получил объект, изменил дату и снова не записал - база опять ничего про нового про него не узнала. Третий раз получил объект и тут же его записал. Кстати, тебе в прошлой ветке дали правильное решение: v8: Изменить документ |
|||
11
Wobland
06.07.14
✎
13:58
|
(10) в прошлой ветке был трэш и угар с поиском по номеру. тут хоть ссылки видно
|
|||
12
hhhh
06.07.14
✎
14:00
|
(5) надо объект поместить в переменную
ДокументЗаказ = заказ.ПолучитьОбъект(); |
|||
13
azeml
06.07.14
✎
14:06
|
СПАСИБО большое помогло.
|
|||
14
Wobland
06.07.14
✎
14:09
|
чтоб не копипастил
http://i.imgur.com/6aIGfOw.png |
|||
15
hhhh
06.07.14
✎
14:18
|
(14) правильнее быстрее
Объ.ТипЦен = Выборка.ТипЦен1; |
|||
16
Wobland
06.07.14
✎
14:21
|
я ждал этого замечания ;)
соединение в запросе будет быстрее получения через точку от объекта? |
|||
17
hhhh
06.07.14
✎
14:23
|
(16) да, получается Об.ДоговорКонтрагента.ТипЦен - это классический запрос в цикле. ЕСли 2-3 заказа там, то это фигня, а если он за квартал попробует сделать, то 5 часов выполнения запроса гарантировано.
|
|||
18
Wobland
06.07.14
✎
14:26
|
да, про запрос в цикле согласен. про 5 часов на десять тысяч документов - нет ;)
|
|||
19
Wobland
06.07.14
✎
14:41
|
198 секунд с Об.ДоговорКонтрагента.ТипЦен против 218 с соединением в запросе. 10000 итераций с одной ссылкой в режиме отладки. разница ни о чём
|
|||
20
hhhh
06.07.14
✎
15:41
|
ну у меня был опыт, разыскивал такие ошибки, выполняется секунд 20, нахожу обращение через две точки, меняю, получается 8 миллисекунд.
|
|||
21
GreatOne
06.07.14
✎
17:02
|
ТС упоротый, была эта тему уже v8: Изменить документ.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |