Меню

1с заполнитьзначениясвойств не работает

Не работает ЗаполнитьЗначенияСвойств из запроса

Есть запрос по дкументу ВосстановлениеНДСпоОбъектамНедвижимости. Создаю структуру, чтобы вставить данные автоматически из запроса.
В итоге возвращает незаполненную структуру. Что нужно поправить?

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| СчетФактураПолученныйДокументыОснования.Ссылка,
| СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка,
| СчетФактураПолученныйДокументыОснования.Ссылка КАК Ссылка1,
| ВосстановлениеНДСпоОбъектамНедвижимостиСчетаФактуры.СчетФактура.Ссылка,
| ВосстановлениеНДСпоОбъектамНедвижимостиСчетаФактуры.Ссылка КАК Ссылка2
|ПОМЕСТИТЬ ВтСЧетфактуры
|ИЗ
| Документ.ВосстановлениеНДСпоОбъектамНедвижимости.СчетаФактуры КАК ВосстановлениеНДСпоОбъектамНедвижимостиСчетаФактуры
| ПОЛНОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученныйДокументыОснования
| ПО ВосстановлениеНДСпоОбъектамНедвижимостиСчетаФактуры.СчетФактура.Ссылка = СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка
|ГДЕ
| ВосстановлениеНДСпоОбъектамНедвижимостиСчетаФактуры.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОбъектыНедвижимости.Ссылка.Номер КАК НомерДок,
| ОбъектыНедвижимости.Ссылка.Дата КАК ДатаДок,
| ОбъектыНедвижимости.Ссылка.Организация КАК Орг,
| ОбъектыНедвижимости.НомерСтроки КАК НомерСтроки,
| ОбъектыНедвижимости.ОбъектНедвижимости КАК объект,
| ОбъектыНедвижимости.ИспользуетсяДляОперацийНеОблагаемыхНДС КАК ИспДляОперНеОблагНДС,
| ОбъектыНедвижимости.ДатаНачалаИспользованияДляОпераций КАК ДатаНачИспольНеоблагНДС,
| ОбъектыНедвижимости.ДатаВводаВЭксплуатациюБУ КАК ДатаВводаВЭксплуат,
| ОбъектыНедвижимости.ДатаНачисленияАмортизацииНУ КАК ДатаНачисАморт,
| ОбъектыНедвижимости.СтоимостьОбъектаНедвижимости КАК СтоимостьБУ,
| ОбъектыНедвижимости.СуммаНДСПоПодряднымРаботам КАК НДСпоПодрядам,
| ОбъектыНедвижимости.СуммаНДСПоСМРДляСобственногоПотребления КАК НДСсрм,
| ОбъектыНедвижимости.СуммаНДСПоОбъектуНедвижимости КАК НДСПоОбъекту,
| ОбъектыНедвижимости.ДоляВыручкиНеОблагаемаяНДС КАК ДоляВыручки,
| ОбъектыНедвижимости.СуммаНДСПоПодряднымРаботамВосстановлена КАК НдсПодрядВосстан,
| ОбъектыНедвижимости.СуммаНДСПоСМРДляСобственногоПотребленияВосстановлена КАК НДСХозспособом,
| ОбъектыНедвижимости.СуммаНДСПоОбъектуНедвижимостиВосстановлена КАК НДСОбъектаВосстановл,
| СчетаФактуры.НомерСтроки КАК НомерСтрокиСчетФактура,
| СчетаФактуры.СчетФактура КАК СчетФакт,
| СчетаФактуры.ВидЦенности КАК Код,
| СчетаФактуры.КодОперацииДляДекларации КАК Поставщик,
| СчетаФактуры.ДатаОплаты,
| СчетаФактуры.ДокументОплаты КАК ДокОплаты,
| СчетаФактуры.СуммаБезНДС КАК СуммаБезНДС,
| СчетаФактуры.СтавкаНДС КАК НДС_процент,
| СчетаФактуры.НДС КАК НДС,
| СчетаФактуры.СуммаБезНДСВосстановлена КАК СуммаБезНДСВосстановлена,
| СчетаФактуры.НДСВосстановлен КАК НДСВосстановлен,
| ОбъектыНедвижимости.КлючСтроки КАК КлючСтроки,
| СчетаФактуры.КлючСтроки КАК КлючСтрокиСчетФактура,
| ВтСЧетфактуры.Ссылка КАК ДокСчетФактура
|ИЗ
| Документ.ВосстановлениеНДСпоОбъектамНедвижимости.ОбъектыНедвижимости КАК ОбъектыНедвижимости
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВосстановлениеНДСпоОбъектамНедвижимости.СчетаФактуры КАК СчетаФактуры
| ПОЛНОЕ СОЕДИНЕНИЕ ВтСЧетфактуры КАК ВтСЧетфактуры
| ПО СчетаФактуры.СчетФактура.Ссылка = ВтСЧетфактуры.ДокументОснованиеСсылка
| ПО ОбъектыНедвижимости.Ссылка = СчетаФактуры.Ссылка
| И ОбъектыНедвижимости.КлючСтроки = СчетаФактуры.КлючСтроки
|ГДЕ
| ОбъектыНедвижимости.Ссылка = &Ссылка
|ИТОГИ
| СУММА(СтоимостьБУ),
| СУММА(НДСпоПодрядам),
| СУММА(НДСсрм),
| СУММА(НДСПоОбъекту),
| СУММА(ДоляВыручки),
| СУММА(НдсПодрядВосстан),
| СУММА(НДСХозспособом),
| СУММА(НДСОбъектаВосстановл),
| СУММА(СуммаБезНДС),
| СУММА(НДС),
| СУММА(СуммаБезНДСВосстановлена),
| СУММА(НДСВосстановлен)
|ПО
| объект»;

ДанныеДляПечати = Новый Структура();

//шапка
ДанныеДляПечати.Вставить(«НомерДок»);
ДанныеДляПечати.Вставить(«ДатаДок»);
ДанныеДляПечати.Вставить(«Орг»);
//1.Объекты недвижимости
ДанныеДляПечати.Вставить(«НомерСтроки»);
ДанныеДляПечати.Вставить(«объект»,);
ДанныеДляПечати.Вставить(«ИспДляОперНеОблагНДС»);
ДанныеДляПечати.Вставить(«ДатаНачИспольНеоблагНДС»);
ДанныеДляПечати.Вставить(«ДатаВводаВЭксплуат»);
ДанныеДляПечати.Вставить(«ДатаНачисАморт»);
ДанныеДляПечати.Вставить(«СтоимостьБУ»);
ДанныеДляПечати.Вставить(«НДСпоПодрядам»);
ДанныеДляПечати.Вставить(«НДСсрм»);
ДанныеДляПечати.Вставить(«НДСПоОбъекту»);
ДанныеДляПечати.Вставить(«ДоляВыручки»);
ДанныеДляПечати.Вставить(«НдсПодрядВосстан»);
ДанныеДляПечати.Вставить(«НДСХозспособом»);
ДанныеДляПечати.Вставить(«НДСОбъектаВосстановл»);
//2.Счет-фактуры
ДанныеДляПечати.Вставить(«НомерСтрокиСчетФактура»);
ДанныеДляПечати.Вставить(«СчетФакт»,);
ДанныеДляПечати.Вставить(«ВидЦенности»);
ДанныеДляПечати.Вставить(«Код»);
ДанныеДляПечати.Вставить(«Поставщик»);
ДанныеДляПечати.Вставить(«ДатаОплаты»);
ДанныеДляПечати.Вставить(«ДокОплаты»);
ДанныеДляПечати.Вставить(«СуммаБезНДС»);
ДанныеДляПечати.Вставить(«НДС_процент»);
ДанныеДляПечати.Вставить(«НДС»);
ДанныеДляПечати.Вставить(«СуммаБезНДСВосстановлена»);
ДанныеДляПечати.Вставить(«НДСВосстановлен»);
ДанныеДляПечати.Вставить(«ДокСчетФактура»,);

Пока ВыборкаОбъектНедвижимости.Следующий() Цикл
// Вставить обработку выборки ВыборкаОбъектНедвижимости
ЗаполнитьЗначенияСвойств(ВыборкаОбъектНедвижимости, ДанныеДляПечати); //приемник, источник

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписиСчетФактуры
ЗаполнитьЗначенияСвойств(ВыборкаДетальныеЗаписи, ДанныеДляПечати); //приемник, источник
КонецЦикла;
КонецЦикла;

Читайте также:  Как жить если не любишь работать

Источник

ЗаполнитьЗначениеСвойств() — ошибка моя или нет

День добрый.
Ситуация:
Есть код:
ЗаполнитьЗначенияСвойств(ПодменяющийОбъект,Объект);
Выполняется при обмене через планы обмена, где
Объект — ДокументОбъект.ЗаказПоставщику, и.т..д.
ПодменяющийОбъект — ДокументОбъект.ОтражениеТоварныхОперацийВоВзаиморасчетах

Смысл: По отдельному плану обмена создается узел, в котором только Взаиморасчеты, Заявки на расходывание ДС, и.т.д. Товарные документы подменяются спец. доком, у которого в шапке — только основные реквизиты. Все работает, но на этой строчке — достаточно большой расход ресурсов. Подозреваю, что из за того, что в шапке ДокументОбъект.ЗаказПоставщику — много реквизитов.

Проблема:
Код вида
ЗаполнитьЗначенияСвойств(ПодменяющийОбъект,Объект,СтрокаСвойствПодмены);
, где

СтрокаСвойствПодмены=»»;
Для Каждого Реквизит Из Метаданные.Документы.ОтражениеТоварныхОперацийВоВзаиморасчетах.Реквизиты Цикл
СтрокаСвойствПодмены=СтрокаСвойствПодмены+Реквизит.Имя+», «;
КонецЦикла;
СтрокаСвойствПодмены=Лев(СтрокаСвойствПодмены,СтрДлина(СтрокаСвойствПодмены)-2);

не выполняется из за ошибки:

Ошибка при записи изменений при обмене: Ошибка при вызове метода контекста (ЗаписатьИзменения): Ошибка при выполнении обработчика — ‘<ПланОбмена.ДДС(78)>: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств): Недопустимое значение параметра (параметр номер ‘3’) (Поле ‘Валюта’ объекта ‘Документ объект: Отражение товарных операций во взаиморасчетах’ не обнаружено)’

Хотя поле «Валюта» точно есть.
Есть мысли? Может кто подтвердить ошибку?

Источник

Процедура ЗаполнитьЗначенияСвойств()

Копирует свойства одного объекта в одноименные свойства другого

Синтаксис

Процедура ЗаполнитьЗначенияСвойств() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров процедуры ЗаполнитьЗначенияСвойств() :

Имя параметра Тип Описание
Приемник Произвольный Значение, чьи свойства будут заполнены значениями соответствующих свойств Источника .

Внимание! Значение данного параметра не может быть примитивного типа!

Источник Произвольный Значения свойств данного объекта будут установлены в соответствующие свойства Приемника .

Внимание! Значение данного параметра не может быть примитивного типа!

СписокСвойств (необязательный) Строка Ограничивает список имен свойств которые необходимо заполнить. Имена свойств указываются через запятую. Если параметр опущен, то копируются только те свойства, которые представлены одновременно и в Источнике , и в Приемнике .
ИсключаяСвойства (необязательный) Строка Список имен свойств Приемника, разделенный запятыми, которые необходимо исключить из заполнения. Если свойства, указанного в параметре не окажется в Приемнике , будет вызвано исключение.
Жирным шрифтом выделены обязательные параметры

Описание

Процедура ЗаполнитьЗначенияСвойств() Копирует свойства одного объекта в одноименные свойства другого. Сопоставление свойств производится по именам. Если указан параметр СписокСвойств , то в заполнении участвуют только они, параметр ИсключаяСвойства игнорируется. В противном случае, если указан параметр ИсключаяСвойства , свойства перечисленные в нем, исключаются из обработки.

Доступность

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

Пример использования

Пример кода с использованием процедуры ЗаполнитьЗначенияСвойств() :

Источник

ЗаполнитьЗначенияСвойств ускорить можно?

(4) замерь производительность, сделай скриншот и покажи нам.

ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 412 ЗаписьНабора.СтоимостьБезНДС = СтрокаОстатка.СтоимостьБезНДС; 5 0,885091 3,65
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 433 ЗаписьНабора.ИсходныйНДСРегл = РаспределенныйРасход.НДСРегл; 5 0,895292 3,69
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 432 ЗаписьНабора.ИсходнаяСтоимостьРегл = РаспределенныйРасход.СтоимостьРегл; 5 0,910266 3,75
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 431 ЗаписьНабора.ИсходнаяСтоимостьБезНДС = РаспределенныйРасход.СтоимостьБезНДС; 5 0,958894 3,95
ОбщийМодуль.ПартионныйУчетСервер.Модуль 8 430 ЗаписьНабора.ИсходнаяСтоимость = РаспределенныйРасход.Стоимость; 5 0,965688 3,98
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 412 Остаток.Количество = Остаток.Количество — РаспределяемоеКоличество; 4 1,389572 5,73
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 416 Остаток.НДСРегл = Остаток.НДСРегл — Расход.НДСРегл; 4 1,422046 5,86
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 415 Остаток.СтоимостьРегл = Остаток.СтоимостьРегл — Расход.СтоимостьРегл; 4 1,533459 6,32
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 413 Остаток.Стоимость = Остаток.Стоимость — Расход.Стоимость; 4 1,608745 6,63
ОбщийМодуль.ПартионныйУчетСервер.Модуль 3 414 Остаток.СтоимостьБезНДС = Остаток.СтоимостьБезНДС — Расход.СтоимостьБезНДС; 4 1,621341 6,68

как-то можно ускорить или может быть переписать сами расчеты? кто-нибудь делал?

Источник

Центр Сертифицированного Обучения 1С — Казань (ZF)

Форум (регистрация не требуется)

  • Список форумовВопросыВопросы по программированию
  • Изменить размер шрифта
  • Известить друга
  • Для печати
  • FAQ
  • Регистрация
  • Вход

Внешнее соединение (COM). ЗаполнитьЗначенияСвойств

В данном разделе можно задавать вопросы по программированию на платформе 1С:Предприятие 8.
(Раздел предназначен для тех, кто уже прошел обучение в нашем учебном центре)

p.s. Просьба задавать вопросы только по программированию. На вопросы по типовым конфигурациям обычно не отвечаю по двум причинам
1. В последнее время редко с ними работаю.
2. Чтобы ответить на вопрос требуется: установить соответствующую базу нужного релиза, смоделировать ситуацию, и только после этого возможно залезть в конфигуратор и разобраться что не так (к сожалению, у меня нет столько времени).

Внешнее соединение (COM). ЗаполнитьЗначенияСвойств

galimova_alsou » 16 май 2017, 16:43

Добрый день.
Использую COM-соединение.
Подключаюсь. Получаю элемент справочника из базы-приемника КонтрагентНДС (тип COM-объект)
КонтрагентНДС = КонтрагентНДС.Ссылка.ПолучитьОбъект();

Хочу заполнить его данными из элемента текущей базы:
ЗаполнитьЗначенияСвойств(КонтрагентНДС.Ссылка, Ссылка)

Но значения не меняются.
Подскажите, пожалуйста, куда копать.

Re: Внешнее соединение (COM). ЗаполнитьЗначенияСвойств

admin » 17 май 2017, 00:31

Добрый день, Алсу!

Таким способом вы сможете заполнить только поля простых типов. Ссылочные поля так не получится заполнить.

Попробуйте так:
ЗаполнитьЗначенияСвойств(КонтрагентНДС, Ссылка.ПолучитьОбъект());

Re: Внешнее соединение (COM). ЗаполнитьЗначенияСвойств

galimova_alsou » 17 май 2017, 12:49

Источник

Adblock
detector