Как проверить сравнить данные со следующей строкой?
Привет всем. Подскажите как правильно условие поставить чтобы пломбу не в каждый документ Изменение состояния оборудования отдельно создавать, а если оборудованиессылка одинаковое то добовлять следующюю запись Док = Демонтаж.Пломбы.Добавить(); в документ,. че т нифига не получается. Спасибо
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИзменениеПараметровОборудованияПломбы.Пломба.ВидПломбы КАК ПломбаВидПломбы,
| ИзменениеПараметровОборудованияПломбы.Пломба.Ссылка КАК ПломбаСсылка,
| ИзменениеПараметровОборудования.Абонент КАК Абонент,
| ИзменениеПараметровОборудованияПломбы.Оборудование.Ссылка КАК ОборудованиеСсылка,
| ИзменениеПараметровОборудованияПломбы.МестоУстановки.Ссылка КАК МестоУстановкиСсылка,
| ИзменениеПараметровОборудованияПломбы.ТипПломбировки.Ссылка КАК ТипПломбировкиСсылка,
| ИзменениеПараметровОборудованияПломбы.Ссылка.Исполнитель.Ссылка КАК ИсполнительСсылка
|ПОМЕСТИТЬ ВТПломбы
|ИЗ
| Документ.ИзменениеПараметровОборудования.Пломбы КАК ИзменениеПараметровОборудованияПломбы
| ПОЛНОЕ СОЕДИНЕНИЕ Документ.ИзменениеПараметровОборудования КАК ИзменениеПараметровОборудования
| ПО ИзменениеПараметровОборудованияПломбы.Ссылка = ИзменениеПараметровОборудования.Ссылка
|ГДЕ
| НЕ ИзменениеПараметровОборудования.ПометкаУдаления
| И ИзменениеПараметровОборудованияПломбы.Действует = ИСТИНА
| И НЕ ИзменениеПараметровОборудованияПломбы.Пломба.ПометкаУдаления
| И ИзменениеПараметровОборудованияПломбы.Пломба.ВидПломбы.Наименование <> &НаименованиеПломбы
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ИзменениеПараметровОборудованияПараметрыОборудования.Оборудование.Ссылка КАК ОборудованиеСсылка,
| ИзменениеПараметровОборудования.ДатаИзмененияСостояния КАК ДатаИзмененияСостояния,
| ИзменениеПараметровОборудованияПараметрыОборудования.Оборудование.Вид КАК ОборудованиеВид,
| ИзменениеПараметровОборудования.Автор.Ссылка КАК АвторСсылка
|ПОМЕСТИТЬ ВТСчетчик
|ИЗ
| Документ.ИзменениеПараметровОборудования.ПараметрыОборудования КАК ИзменениеПараметровОборудованияПараметрыОборудования
| ПОЛНОЕ СОЕДИНЕНИЕ Документ.ИзменениеПараметровОборудования КАК ИзменениеПараметровОборудования
| ПО ИзменениеПараметровОборудованияПараметрыОборудования.Ссылка = ИзменениеПараметровОборудования.Ссылка
|ГДЕ
| ИзменениеПараметровОборудования.ДатаИзмененияСостояния >= &НачалоПериода
| И ИзменениеПараметровОборудования.ДатаИзмененияСостояния <= &КонецПериода
| И ИзменениеПараметровОборудованияПараметрыОборудования.Значение = &СостояниеСчетчик
| И НЕ ИзменениеПараметровОборудованияПараметрыОборудования.Оборудование.ПометкаУдаления
| И ИзменениеПараметровОборудованияПараметрыОборудования.Оборудование.Вид.Наименование = &ВидОборудования
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ВТПломбы.Абонент КАК Абонент,
| ВТСчетчик.ОборудованиеСсылка КАК ОборудованиеСсылка,
| ВТСчетчик.ОборудованиеВид КАК ОборудованиеВид,
| ВТСчетчик.ДатаИзмененияСостояния КАК ДатаИзмененияСостояния,
| ВТСчетчик.АвторСсылка КАК АвторСсылка,
| ВТПломбы.ПломбаСсылка КАК ПломбаСсылка,
| ВТПломбы.ПломбаВидПломбы КАК ПломбаВидПломбы,
| ВТПломбы.ИсполнительСсылка КАК ИсполнительСсылка,
| ВТПломбы.ТипПломбировкиСсылка КАК ТипПломбировкиСсылка,
| ВТПломбы.МестоУстановкиСсылка КАК МестоУстановкиСсылка
|ИЗ
| ВТСчетчик КАК ВТСчетчик
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПломбы КАК ВТПломбы
| ПО ВТСчетчик.ОборудованиеСсылка = ВТПломбы.ОборудованиеСсылка
|
|УПОРЯДОЧИТЬ ПО
| ОборудованиеСсылка";
НаименованиеПломбы = "Заводская";
СостояниеСчетчик = Справочники.СостоянияОборудования.НайтиПоНаименованию("Демонтировано");
ВидОборудования = "Яблоко";
Запрос.УстановитьПараметр("НаименованиеПломбы", НаименованиеПломбы);
Запрос.УстановитьПараметр("СостояниеСчетчик", СостояниеСчетчик);
Запрос.УстановитьПараметр("ВидОборудования", ВидОборудования);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Демонтаж = Документы.ИзменениеПараметровОборудования.СоздатьДокумент();
Демонтаж.Дата = ТекущаяДата();
Демонтаж.Организация = ПолучитьОрганизациюНаСервере();
Демонтаж.УчетныйМесяц = ПолучитьУчетныйМесяц();
Демонтаж.Подразделение = ПолучитьКодУчасткаНаСервере();
Демонтаж.ДатаИзмененияСостояния = Выборка.ДатаИзмененияСостояния;
Демонтаж.Абонент = Выборка.Абонент;
Демонтаж.Исполнитель = Выборка.ИсполнительСсылка;
Демонтаж.Автор = Выборка.АвторСсылка;
Док = Демонтаж.Пломбы.Добавить();
Док.Оборудование = Выборка.ОборудованиеСсылка;
Док.Пломба = Выборка.ПломбаСсылка;
Док.МестоУстановки = Выборка.МестоУстановкиСсылка;
Док.ТипПломбировки = Выборка.ТипПломбировкиСсылка;
Док.Действует = ЛОЖЬ;
Демонтаж.Примечание = "Добавлено обработкой";
Демонтаж.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Разработка синтаксического анализатора языка запросов на языке 1С
- 6 новых функций, которые не следует использовать в режиме совместимости
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Совместимость работы со строками. Жизнь до 8.3.6 и после
- Algo1C: Решение алгоритмических задач на базе 1С:Предприятие [Часть #10]
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(9)Вам нужно поменять запрос так, чтобы в нем были итоги по тому полю, которое определяет, что это отдельный документ.
Потом обход запроса сначала по этой группе (создание шапки документов), потом по деталям (заполнение табличной части).
Грубо говоря - нужно сделать что-то похожее на дерево значений.
Не могу сейчас, к сожалению, написать кусок кода, попробуйте в интернете поискать, как это работает.
Потом обход запроса сначала по этой группе (создание шапки документов), потом по деталям (заполнение табличной части).
Грубо говоря - нужно сделать что-то похожее на дерево значений.
Не могу сейчас, к сожалению, написать кусок кода, попробуйте в интернете поискать, как это работает.
(13)
Вернее - может, но тогда нет никакого смысла в реквизите ТЧ "Оборудование".
Там архитектура кривая. До запроса еще далеко учиться.
итоги по тому полю, которое определяет, что это отдельный документ.
У него яблоки в ТЧ. Поэтому Яблоко не может быть определяющим полем.
Вернее - может, но тогда нет никакого смысла в реквизите ТЧ "Оборудование".
Там архитектура кривая. До запроса еще далеко учиться.
(14)Возможно тут исключительно для определенной задачи так понадобилось, что в определенном документе должно быть только одно оборудование, а для других задач вполне может быть несколько. Поэтому и на такой архитектуре все решаемо, просто понадобиться больше группировок.
Тоже приходилось так делать, например, при переносе остатков: куча группировок по организации, подразделению, галкам в документе (типа отражать в БУ, НУ и пр...).
Помимо яблока может понадобится еще и яблоня и яблоневый сад))
Тоже приходилось так делать, например, при переносе остатков: куча группировок по организации, подразделению, галкам в документе (типа отражать в БУ, НУ и пр...).
Помимо яблока может понадобится еще и яблоня и яблоневый сад))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот