Удаление записей регистратора в подчиненном регистратору регистре сведений
платформа учебная 8.3 .
что имеется:
документ Реализация записывает в РС :
измерение - услуга, контрагент, Документ(ссылку),
ресурс - Дата (остается пустой)
документ Планирование заполняет по кнопке Выполнить данные указанные выше , и вручную заполняется Дата.
При проведении дока Планирование записи дока Реализации становятся неактивными, таким образом из-за того что дата не заполнена , в будущий запрос эти записи уже не попадают при работе с доком Планирование.
Сделал в модуле объекта дока Реализации процедуру:
Но в итоге удаляются все записи регистратора Планирование, даже если выбрать отмену проведения только одного из доков Реализация,.т.е. если есть записи регистратора по докам План1, План2 и т.д. то все они удаляются из РС. Конечно признак проведения с них тоже снимается.
а нужно как-то сделать чтобы удалялись записи например только одного дока , например у дока План1, а др.доки регистратора План оставались.
Профессионалы отзовитесь, помогите учащемуся.
что имеется:
документ Реализация записывает в РС :
измерение - услуга, контрагент, Документ(ссылку),
ресурс - Дата (остается пустой)
документ Планирование заполняет по кнопке Выполнить данные указанные выше , и вручную заполняется Дата.
При проведении дока Планирование записи дока Реализации становятся неактивными, таким образом из-за того что дата не заполнена , в будущий запрос эти записи уже не попадают при работе с доком Планирование.
Сделал в модуле объекта дока Реализации процедуру:
Но в итоге удаляются все записи регистратора Планирование, даже если выбрать отмену проведения только одного из доков Реализация,.т.е. если есть записи регистратора по докам План1, План2 и т.д. то все они удаляются из РС. Конечно признак проведения с них тоже снимается.
а нужно как-то сделать чтобы удалялись записи например только одного дока , например у дока План1, а др.доки регистратора План оставались.
Профессионалы отзовитесь, помогите учащемуся.
По теме из базы знаний
Найденные решения
(2) Ну если в РС есть измерение Документ, то тогда легко:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОказанияУслугСрезПоследних.Регистратор
|ИЗ
| РегистрСведений.ПланированиеОказанияУслуг.СрезПоследних(,Документ = &Документ) КАК ПланированиеОказанияУслугСрезПоследних
|ГДЕ
| ПланированиеОказанияУслугСрезПоследних.Регистратор Ссылка Документ.ПланированиеОказанияУслуг";
Запрос.УстановитьПараметр("Документ", Ссылка);
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
что-то код процедуры не загрузился
вот такая процедура:
вот такая процедура:
Процедура ОбработкаУдаленияПроведения(Отказ)
// отмена проведения докПродажи
// должна приводить к отмене проведения докаПланирование
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОказанияУслугСрезПоследних.Регистратор
|ИЗ
| РегистрСведений.ПланированиеОказанияУслуг.СрезПоследних КАК ПланированиеОказанияУслугСрезПоследних
|ГДЕ
| ТИПЗНАЧЕНИЯ(ПланированиеОказанияУслугСрезПоследних.Регистратор) = ТИП(Документ.ПланированиеОказанияУслуг)";
Запрос.УстановитьПараметр("Регистратор", Документы.ПланированиеОказанияУслуг);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого ЭлементРезультата Из Результат Цикл
ДокументОбъект = ЭлементРезультата.регистратор.ПолучитьОбъект();
ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Документ " + ДокументОбъект + " удален из регистра сведений Планирование, т.к. сделана отмена проведения документа РеализацияТоваров/услуг " + Номер;
Сообщение.Сообщить();
КонецЦикла;
КонецПроцедуры
Показать
(2) Ну если в РС есть измерение Документ, то тогда легко:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОказанияУслугСрезПоследних.Регистратор
|ИЗ
| РегистрСведений.ПланированиеОказанияУслуг.СрезПоследних(,Документ = &Документ) КАК ПланированиеОказанияУслугСрезПоследних
|ГДЕ
| ПланированиеОказанияУслугСрезПоследних.Регистратор Ссылка Документ.ПланированиеОказанияУслуг";
Запрос.УстановитьПараметр("Документ", Ссылка);
Показать
(3)
Спасибо, Ваш способ работает.
Но немного хотелось бы его доработать.
Что получается.
Если одна ссылка тогда все отрабатывает, удаляется из РС только тот док.Планирование, провидение которого отменяется докомРеализация и набор записей этого докаРеализация.
В чем загвоздка.
В доке Планирование могут быть несколько ссылок на разные докиРеализация.
В этом случае отмена проведения какого-то одного из этих доковРеализация , удаляет только его записи, оставляя записи другого докаРеализация из того же докаПланирование.
я сделал видеозапись, на ней виден весь процесс проведения доков Реализация, какие записи появились в РС, проведение дока планирование, после что стало с записями в регистре, и что произошло в регистре после отмены проведения одного из доков Реализация.
надеюсь видеозапись будет понятной без слов.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОказанияУслугСрезПоследних.Регистратор
|ИЗ
| РегистрСведений.ПланированиеОказанияУслуг.СрезПоследних(,Документ = &Документ) КАК ПланированиеОказанияУслугСрезПоследних
|ГДЕ
| ПланированиеОказанияУслугСрезПоследних.Регистратор Ссылка Документ.ПланированиеОказанияУслуг";
Запрос.УстановитьПараметр("Документ", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ПланированиеОказанияУслугСрезПоследних.Регистратор
|ИЗ
| РегистрСведений.ПланированиеОказанияУслуг.СрезПоследних(,Документ = &Документ) КАК ПланированиеОказанияУслугСрезПоследних
|ГДЕ
| ПланированиеОказанияУслугСрезПоследних.Регистратор Ссылка Документ.ПланированиеОказанияУслуг";
Запрос.УстановитьПараметр("Документ", Ссылка);
Спасибо, Ваш способ работает.
Но немного хотелось бы его доработать.
Что получается.
Если одна ссылка тогда все отрабатывает, удаляется из РС только тот док.Планирование, провидение которого отменяется докомРеализация и набор записей этого докаРеализация.
В чем загвоздка.
В доке Планирование могут быть несколько ссылок на разные докиРеализация.
В этом случае отмена проведения какого-то одного из этих доковРеализация , удаляет только его записи, оставляя записи другого докаРеализация из того же докаПланирование.
я сделал видеозапись, на ней виден весь процесс проведения доков Реализация, какие записи появились в РС, проведение дока планирование, после что стало с записями в регистре, и что произошло в регистре после отмены проведения одного из доков Реализация.
надеюсь видеозапись будет понятной без слов.
Прикрепленные файлы:
Запись_2017_06_08_21_02_40_291.mp4
(8)
Видео не смотрел, извините.
А надо то в итоге как?
Если чтоб удалялись записи Реализации (этой) и Планирования (по этому документу) то:
В этом случае отмена проведения какого-то одного из этих доковРеализация , удаляет только его записи, оставляя записи другого докаРеализация из того же докаПланирование.
Видео не смотрел, извините.
А надо то в итоге как?
Если чтоб удалялись записи Реализации (этой) и Планирования (по этому документу) то:
Набор = РегистрыСведений.ПланированиеОказанияУслуг.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
Набор.Отбор.Документ.Установить(Ссылка);
Набор.Записать();
видео всего чуть более 1 мин. это не вирус.
тогда попытаюсь объяснить.
смотрим скрины.
первый скрин - это после проведения доков Реализация №17 и №20.
и после проведения одного дока Планирование №1.
на скрине видим то что получилось в РС.
Напомню что в док Планирование попадает запросом по РС (на основе доков Реализация) все наборы записей, у которых ресурс ПланДата не заполнен. На скрине это видно. Активность я отключил , как написал выше.
Видим в РС есть четыре записи,
1) с регистратором Реализация 17
2) две записи регистратора Реализация 20 ,
3) одна запись регистратора Планирование №1.
Первые два пункта (ссылки ) также есть в док Планирование №1. (см. второй скрин)
Отмена проведения Реализации №17 (неважно какой документ из Реализация можно и №20, на примере сделаю на Реализации №17)
удалит только свою запись, в РС остаются лишние неактивные записи Реализации №20, они уже просто занимают место в РС. Получится так как на третьем скрине.
Вот это надо устранить.
тогда попытаюсь объяснить.
смотрим скрины.
первый скрин - это после проведения доков Реализация №17 и №20.
и после проведения одного дока Планирование №1.
на скрине видим то что получилось в РС.
Напомню что в док Планирование попадает запросом по РС (на основе доков Реализация) все наборы записей, у которых ресурс ПланДата не заполнен. На скрине это видно. Активность я отключил , как написал выше.
Видим в РС есть четыре записи,
1) с регистратором Реализация 17
2) две записи регистратора Реализация 20 ,
3) одна запись регистратора Планирование №1.
Первые два пункта (ссылки ) также есть в док Планирование №1. (см. второй скрин)
Отмена проведения Реализации №17 (неважно какой документ из Реализация можно и №20, на примере сделаю на Реализации №17)
удалит только свою запись, в РС остаются лишние неактивные записи Реализации №20, они уже просто занимают место в РС. Получится так как на третьем скрине.
Вот это надо устранить.
Прикрепленные файлы:
(10) Убирать лишние реализации лучше при отмене проведения планирования, там же есть ссылки на все реализации? Убираем проведение одной реализации, она распроводит планирование, а планирование в свою очередь снимает с проведения оставшиеся реализации. Подобным кодом что я писал вышел, из планирования реализации найти не сложно
Набор = РегистрыСведений.ПланированиеОказанияУслуг.СоздатьНаборЗаписей();
Набор.Отбор.Регистратор.Установить(СсылкаНаРеализацииКоторыеНадоУдалить);
Набор.Отбор.Документ.Установить(СсылкаНаРеализацииКоторыеНадоУдалить);
Набор.Записать();
(12)
ссылки на реализации есть в табчасти в Планировании, которая заполняется запросом к РС.
Отмена Планирования их не уберет из РС, потому что в РС эти ссылки попадают при проведении другого регистратора - Реализация.
Убирать лишние реализации лучше при отмене проведения планирования, там же есть ссылки на все реализации?
ссылки на реализации есть в табчасти в Планировании, которая заполняется запросом к РС.
Отмена Планирования их не уберет из РС, потому что в РС эти ссылки попадают при проведении другого регистратора - Реализация.
Набор.Отбор.Регистратор.Установить(Выборка.Регистратор);
Набор.Отбор.Документ.Установить(Ссылка);
полагаю в этой строке
Набор.Отбор.Документ.Установить(Ссылка)
должен устанавливаться параметр , который был нами установлен в параметрах вирт.таблицы в запросе, но как его прописать при установке значения отбора?
Набор.Отбор.Документ.Установить(Ссылка);
полагаю в этой строке
Набор.Отбор.Документ.Установить(Ссылка)
должен устанавливаться параметр , который был нами установлен в параметрах вирт.таблицы в запросе, но как его прописать при установке значения отбора?
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)