|
Ошибка при записи реквизита | ☑ | ||
---|---|---|---|---|
0
ipippu
19.04.16
✎
14:58
|
Добрый день!
Необходимо изменить цену товара в документе поступление товаров и услуг. База бухгалтерия 2.0. |
|||
1
ipippu
19.04.16
✎
14:59
|
вот код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслуг.Контрагент, | ПоступлениеТоваровУслуг.Дата, | ПоступлениеТоваровУслуг.Ссылка, | ПоступлениеТоваровУслуг.Товары.( | Ссылка, | НомерСтроки, | ЕдиницаИзмерения, | КоличествоМест, | Количество, | Коэффициент, | Номенклатура, | СтавкаНДС, | Сумма, | СуммаНДС, | Цена, | НомерГТД, | СтранаПроисхождения, | СчетУчета, | СчетУчетаНДС, | ОтражениеВУСН, | ЦенаВРознице, | СуммаВРознице, | СтавкаНДСВРознице, | Контрагент, | ДоговорКонтрагента, | СчетРасчетов | ) |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Дата >= &ДатаС | И ПоступлениеТоваровУслуг.Дата <= &ДатаПО | И ПоступлениеТоваровУслуг.Контрагент = &Контрагент1"; Запрос.УстановитьПараметр("ДатаПО", ДатаПО); Запрос.УстановитьПараметр("ДатаС", ДатаС); Запрос.УстановитьПараметр("Контрагент1", Справочники.Контрагенты.НайтиПоНаименованию("Техпроммаркет ООО")); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); КолонкиТабличнойЧасти = ВыборкаДетальныеЗаписи.Ссылка.Товары; Для Каждого Строка из КолонкиТабличнойЧасти Цикл Строка.Цена = 10; КонецЦикла; Объект.Записать(); КонецЦикла; |
|||
2
ipippu
19.04.16
✎
15:01
|
Ошибка - поле объекта недоступно для записи
Хотя вроде бы объект захватываю |
|||
3
nordbox
19.04.16
✎
15:01
|
Объект.Записать();
После цикла сделай |
|||
4
Лефмихалыч
19.04.16
✎
15:02
|
(3) он после цикла и делает
|
|||
5
Lexey_
19.04.16
✎
15:02
|
(2) Строка.Цена получена из ссылки, а не из объекта
|
|||
6
salvator
19.04.16
✎
15:02
|
КолонкиТабличнойЧасти = ВыборкаДетальныеЗаписи.Ссылка.Товары;
заменить на КолонкиТабличнойЧасти = Объект.Товары; |
|||
7
grigo
19.04.16
✎
15:02
|
Строки надо получить из "Объект", а не из Выборкадетальныезаписи.
|
|||
10
Лефмихалыч
19.04.16
✎
15:03
|
ВыборкаДетаПока ВыборкаДетальныеЗаписи.Следующий() Цикл
Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект(); Для Каждого Строка из Объект.Товары Цикл Строка.Цена = 10; КонецЦикла; Объект.Записать(); КонецЦикла;льныеЗаписи.Ссылка.Товары |
|||
11
nordbox
19.04.16
✎
15:05
|
И
Для Каждого Строка из Объект.Товары Цикл я бы не стал делать переменную с таким названием "Строка" |
|||
12
Sabbath
19.04.16
✎
15:06
|
Получаешь объект, а перебираешь табчасть полученнубю по ссылке. Короче, тут уже написали
И переменная дурацки называется КолонкиТабличнойЧасти - это не колонки, а таб часть и есть Вот так и пиши ТабЧасть = Объект.Товары; И ее перебирай в цикле |
|||
13
salvator
19.04.16
✎
15:07
|
Добью автора )) Да и вообще, это можно было сделать групповой обработкой справочников и документов.
|
|||
14
grigo
19.04.16
✎
15:08
|
(11,12,13) Набросились на мальца))
|
|||
15
Лефмихалыч
19.04.16
✎
15:09
|
только без соответствующей корректировки движений всему учету рано или поздно придут поезда
|
|||
16
Sabbath
19.04.16
✎
15:13
|
И нафига столько полей в запросе, если нужна только ссылка в итоге?
Запрос можно сократить Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслуг.Ссылка |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Дата >= &ДатаС | И ПоступлениеТоваровУслуг.Дата <= &ДатаПО | И ПоступлениеТоваровУслуг.Контрагент = &Контрагент1"; Еще не факт, что тебе нужны не проведенные документы кстати |
|||
17
Sabbath
19.04.16
✎
15:14
|
(14) я просто даю полезные советы :)
|
|||
18
Sabbath
19.04.16
✎
15:15
|
Дата регистрации: 19 апреля 2016; сегодня
:) |
|||
19
ipippu
19.04.16
✎
16:00
|
Спасибо всем большое.
А как пересчитать всю табличную часть? А то данные по цене сохранились, а итоги не изменились(( А желательно еще и перепровести документ) |
|||
20
salvator
19.04.16
✎
16:03
|
Объект.Записать(РежимЗаписиДокумента.Проведение)
|
|||
21
salvator
19.04.16
✎
16:06
|
Плюс в цикле по табличной части написать
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(Строка, Объект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(Строка, Объект); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |