|
Программное внесение изменений в документ | ☑ | ||
---|---|---|---|---|
0
ya1snik
07.04.16
✎
11:39
|
Запрос.Текст = "ВЫБРАТЬ
|ТоварыНаСкладах.Регистратор КАК Документ |ПОМЕСТИТЬ Документы |ИЗ |РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах |ГДЕ |ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК |СГРУППИРОВАТЬ ПО |ТоварыНаСкладах.Регистратор |; |ВЫБРАТЬ |""Реализация товаров и услуг"" КАК ВидДокумента, |РеализацияТоваровУслуг.Ссылка КАК Накладная |ИЗ |Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДОКУМЕНТЫ |ПО Документы.Документ = РеализацияТоваровУслуг.Ссылка Запрос.УстановитьПараметр("ДатаН", началоПериода); Запрос.УстановитьПараметр("ДатаК", конецПериода); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если (Выборка.Накладная.Грузополучатель <> "") Тогда Док = Выборка.Накладная.ПолучитьОбъект(); Док.Контрагент = Док.Грузополучатель; КонецЕсли; КонецЦикла; В общем, пытаюсь поменять контрагента на грузополучателя. Мозги кипят уже. |
|||
1
Радим1987
07.04.16
✎
11:41
|
Док.Контрагент = Док.Грузополучатель; Контрагенты и Грузополучатели в одном справочники?
|
|||
2
Prog111
07.04.16
✎
11:43
|
Док.Записать(РежимЗаписиДокумента.Запись);
|
|||
3
Prog111
07.04.16
✎
11:43
|
Ну или РежимЗаписиДокумента.Проведение
|
|||
4
ya1snik
07.04.16
✎
11:45
|
(1) да
|
|||
5
ya1snik
07.04.16
✎
11:46
|
(2) Т.е. после Док.Контрагент = Док.Грузополучатель;
дописать ваш код? |
|||
6
Радим1987
07.04.16
✎
11:46
|
Док.Контрагент = Выборка.Накладная.Грузополучатель;
|
|||
7
SadrArt
07.04.16
✎
11:49
|
В корне не верно
Выборка.Накладная.Грузополучатель <> "" Что получение через точку. Что сравнение со строкой. |
|||
8
Радим1987
07.04.16
✎
11:52
|
правильнее было написать
Если не ЗначениеЗаполнено(Выборка.Накладная.Грузополучатель) тогда или Выборка.Накладная.Грузополучатель.Наименование = "" |
|||
9
Радим1987
07.04.16
✎
11:53
|
или Выборка.Накладная.Грузополучатель <> Справочник.Какойто.ПустаСсылка()
|
|||
10
SadrArt
07.04.16
✎
12:01
|
А вообще, какой смысл получать регистраторы из регистра и документы? Не достаточно ли самих документов?
|
|||
11
salvator
07.04.16
✎
12:03
|
ВЫБРАТЬ
ТоварыНаСкладах.Регистратор КАК Документ ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ГДЕ ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК И ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг и нафиг не надо соединять потом |
|||
12
salvator
07.04.16
✎
12:04
|
+(11) ВЫБРАТЬ РАЗЛИЧНЫЕ только еще
|
|||
13
ya1snik
07.04.16
✎
12:06
|
(11) Спасибо, не силен
(12) А эту строчку куда засунуть? |
|||
14
ya1snik
07.04.16
✎
12:08
|
(8) А обнулить грузополучателя так правильно?
Док.Грузополучатель = ""; |
|||
15
ya1snik
07.04.16
✎
12:09
|
Добавил в выборку строку
|РеализацияТоваровУслуг.Ссылка.ДоговорКонтрагента КАК Договор Пытаюсь изменить договор в накладной Док.ДоговорКонтрагента = Док.Грузополучатель.ОсновнойДоговорКонтрагента; Не выходит ( |
|||
16
ya1snik
07.04.16
✎
12:13
|
(15) Вернее так
Док.Договор = Док.Грузополучатель.ОсновнойДоговорКонтрагента; Ничего не происходит |
|||
17
ya1snik
07.04.16
✎
12:15
|
(16) Торможу )
Вроде просто код Док.ДоговорКонтрагента = Док.Грузополучатель.ОсновнойДоговорКонтрагента; должен изменять договор. Нет? |
|||
18
Molinor
07.04.16
✎
12:17
|
(17) Этот код устанавливает реквизиту "ДоговорКонтрагента" основной договор контрагента из грузополучателя. А изменит он или нет, это зависит от исходных значений реквизитов.
|
|||
19
Радим1987
07.04.16
✎
12:17
|
А с док.Контрагентом получилось?
|
|||
20
ya1snik
07.04.16
✎
12:18
|
(19) Да, спасибо, работает.
|
|||
21
Радим1987
07.04.16
✎
12:19
|
Док.ДоговорКонтрагента = Выборка.Накладная.Грузополучатель.ОсновнойДоговорКонтрагента;
|
|||
22
ya1snik
07.04.16
✎
12:25
|
(21) Все ок, код
Док.ДоговорКонтрагента = Док.Грузополучатель.ОсновнойДоговорКонтрагента; работает. Просто я Док.Грузополучатель = ""; оставил перед ним. |
|||
23
salvator
07.04.16
✎
12:25
|
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
|ТоварыНаСкладах.Регистратор КАК Накладная |ИЗ |РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах |ГДЕ |ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК |И ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг |УПОРЯДОЧИТЬ ПО ТоварыНаСкладах.Регистратор.Дата"; Запрос.УстановитьПараметр("ДатаН", началоПериода); Запрос.УстановитьПараметр("ДатаК", конецПериода); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ЗначениеЗаполнено(Выборка.Накладная.Грузополучатель) Тогда Док = Выборка.Накладная.ПолучитьОбъект(); Док.Контрагент = Док.Грузополучатель; Док.ДоговорКонтрагента = Док.Грузополучатель.ОсновнойДоговорКонтрагента; Док.Записать(РежимЗаписиДокумента.Проведение); КонецЕсли; КонецЦикла; |
|||
24
ya1snik
07.04.16
✎
12:27
|
(23) А разве в выборку могут попасть дубли? Для чего ВЫБРАТЬ РАЗЛИЧНЫЕ?
|
|||
25
salvator
07.04.16
✎
12:28
|
(24) Ну для чего-то ты в своем запросе группировку добавлял же ;)
|
|||
26
ya1snik
07.04.16
✎
12:32
|
(25) ) Я его откуда-то выгреб. Сам не в теме, честно говоря. (23) Где то видел, что можно, чтобы в выборку попали только проведенные документы. Если не трудно...
|
|||
27
salvator
07.04.16
✎
12:33
|
(26) А ты думаешь, в регистр записи как попали? При проведении наверно, логично?
|
|||
28
ya1snik
07.04.16
✎
12:34
|
(26) Пардон ))
|
|||
29
ya1snik
07.04.16
✎
12:34
|
Всем спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |