- Не работает ЗаполнитьЗначенияСвойств из запроса
- ЗаполнитьЗначениеСвойств() — ошибка моя или нет
- Процедура ЗаполнитьЗначенияСвойств()
- Синтаксис
- Параметры
- Описание
- Доступность
- Пример использования
- ЗаполнитьЗначенияСвойств ускорить можно?
- Центр Сертифицированного Обучения 1С — Казань (ZF)
- Внешнее соединение (COM). ЗаполнитьЗначенияСвойств
- Внешнее соединение (COM). ЗаполнитьЗначенияСвойств
- Re: Внешнее соединение (COM). ЗаполнитьЗначенияСвойств
- Re: Внешнее соединение (COM). ЗаполнитьЗначенияСвойств
Не работает ЗаполнитьЗначенияСвойств из запроса
Есть запрос по дкументу ВосстановлениеНДСпоОбъектамНедвижимости. Создаю структуру, чтобы вставить данные автоматически из запроса.
В итоге возвращает незаполненную структуру. Что нужно поправить?
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| СчетФактураПолученныйДокументыОснования.Ссылка,
| СчетФактураПолученныйДокументыОснования.ДокументОснование.Ссылка,
| СчетФактураПолученныйДокументыОснования.Ссылка КАК Ссылка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
Источник