Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Сен 2017, 10:13
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Обработка удаления документов  (Прочитано 2912 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BEV

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-13
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет! Помогите начинающему!
Необходимо создать обработку, которая позволяет пометить на удаление документы указанного пользователем типа за указанный им период.
Мой вариант: Есть документ ПриказОПриемеНаРаботу. Но форму списка поместил команду Удалить документы за период. Она открывает форму УдалениеДокументов. В ней есть два реквизита: ДатаНачала, ДатаКонца. Пользователь указывает даты и нажимает на кнопку удалить. В модуле процедура:
&НаСервере
Процедура Удалить(Команда)
      Элемент = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Элемент;
Запрос.Текст =
      "ВЫБРАТЬ
   |   ПриказОПриемеНаРаботу.Ссылка,
   |   ПриказОПриемеНаРаботу.ВерсияДанных,
   |   ПриказОПриемеНаРаботу.ПометкаУдаления,
   |   ПриказОПриемеНаРаботу.Номер,
   |   ПриказОПриемеНаРаботу.Дата,
   |   ПриказОПриемеНаРаботу.Проведен,
   |   ПриказОПриемеНаРаботу.Фамилия,
   |   ПриказОПриемеНаРаботу.Имя,
   |   ПриказОПриемеНаРаботу.Отчество,
   |   ПриказОПриемеНаРаботу.ДатаРождения,
   |   ПриказОПриемеНаРаботу.Подразделение,
   |   ПриказОПриемеНаРаботу.Должность,
   |   ПриказОПриемеНаРаботу.Комментарий,
   |   ПриказОПриемеНаРаботу.ТабличнаяЧасть1.(
   |      Ссылка,
   |      НомерСтроки,
   |      СемейноеПоложение,
   |      ПаспортныеДанные
   |   )
   |ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу
   |ГДЕ
   |   ПриказОПриемеНаРаботу.Дата >= &Дата1
   |   И ПриказОПриемеНаРаботу.Дата <= &Дата2";
   Запрос.УстановитьПараметр("Дата1", ДатаНачала );
   Запрос.УстановитьПараметр("Дата2", ДатаКонца);
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
   ТекущийОбъектНоменклатура = Выборка.Ссылка.ПолучитьОбъект();
   ТекущийОбъектНоменклатура.ПометкаУдаления = Истина;
   ТекущийОбъектНоменклатура.Записать();
   Сообщить("Объект удален!");
КонецЦикла;
КонецПроцедуры

При выполнении ничего не происходит, пометка на удаление не ставится.



Оффлайн Kironten

  • *****
  • Сообщений: 868
  • РЕПУТАЦИЯ: 181
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Существует обработка ИТС "Групповая обработка справочников и документов", которая прекрасно решает все ваши проблемы.

Оффлайн DmitriyF

  • *****
  • Сообщений: 714
  • РЕПУТАЦИЯ: 46
  • КПД: 6%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
Всем привет! Помогите начинающему!
Необходимо создать обработку, которая позволяет пометить на удаление документы указанного пользователем типа за указанный им период.
Мой вариант: Есть документ ПриказОПриемеНаРаботу. Но форму списка поместил команду Удалить документы за период. Она открывает форму УдалениеДокументов. В ней есть два реквизита: ДатаНачала, ДатаКонца. Пользователь указывает даты и нажимает на кнопку удалить. В модуле процедура:
&НаСервере
Процедура Удалить(Команда)
      Элемент = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Элемент;
Запрос.Текст =
      "ВЫБРАТЬ
   |   ПриказОПриемеНаРаботу.Ссылка,
   |   ПриказОПриемеНаРаботу.ВерсияДанных,
   |   ПриказОПриемеНаРаботу.ПометкаУдаления,
   |   ПриказОПриемеНаРаботу.Номер,
   |   ПриказОПриемеНаРаботу.Дата,
   |   ПриказОПриемеНаРаботу.Проведен,
   |   ПриказОПриемеНаРаботу.Фамилия,
   |   ПриказОПриемеНаРаботу.Имя,
   |   ПриказОПриемеНаРаботу.Отчество,
   |   ПриказОПриемеНаРаботу.ДатаРождения,
   |   ПриказОПриемеНаРаботу.Подразделение,
   |   ПриказОПриемеНаРаботу.Должность,
   |   ПриказОПриемеНаРаботу.Комментарий,
   |   ПриказОПриемеНаРаботу.ТабличнаяЧасть1.(
   |      Ссылка,
   |      НомерСтроки,
   |      СемейноеПоложение,
   |      ПаспортныеДанные
   |   )
   |ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу
   |ГДЕ
   |   ПриказОПриемеНаРаботу.Дата >= &Дата1
   |   И ПриказОПриемеНаРаботу.Дата <= &Дата2";
   Запрос.УстановитьПараметр("Дата1", ДатаНачала );
   Запрос.УстановитьПараметр("Дата2", ДатаКонца);
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
   ТекущийОбъектНоменклатура = Выборка.Ссылка.ПолучитьОбъект();
   ТекущийОбъектНоменклатура.ПометкаУдаления = Истина;
   ТекущийОбъектНоменклатура.Записать();
   Сообщить("Объект удален!");
КонецЦикла;
КонецПроцедуры

При выполнении ничего не происходит, пометка на удаление не ставится.
а для чего менеджер временных таблиц? Если удаляешь доки товыбирай только ссылку остальное не нужно.ну и запись через попытку с исключением. Если форма управляемая то на сервере делаем это все

Оффлайн ferrari314

  • ***
  • Сообщений: 174
  • РЕПУТАЦИЯ: 6
  • КПД: 3%
  • Главное - не есть желтый снег.
  • Регистрация: 2015-02-09
  • Сайт: 
Много лишнего хлама.
МенеджерВременныхТаблиц убери нафиг, откуда это вообще прилипло?
Просто:
Запрос = Новый запрос.
Запрос.Текст ="ВЫБРАТЬ
   |   ПриказОПриемеНаРаботу.Ссылка,
   |   ПриказОПриемеНаРаботу.Дата
   |ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу
   |ГДЕ
   |   ПриказОПриемеНаРаботу.Дата МЕЖДУ &Дата1 И &Дата2";
   Запрос.УстановитьПараметр("Дата1", ДатаНачала );
   Запрос.УстановитьПараметр("Дата2", ДатаКонца);
ТЗ = Запрос.Выполнить().Выгрузить();
Для каждого документ из ТЗ Цикл
 ОбъектДокумент = Документ.Ссылка.ПолучитьОбъект();
 ОбъектДокумент.ПометкаУдаления = Истина;
 ОбъектДокумент.Записать();
КонецЦикла;
И отбор по типу документа забыл отразить в запросе.
И лишнюю хрень зачем получаешь? Получай только ссылку и поля по которым идет отбор экономишь скорость чтения кода человеком и получения данных машиной.


Оффлайн NastyStep

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-06
  • Сайт: 
  • Профессия: Ученик 1С
Много лишнего хлама.
МенеджерВременныхТаблиц убери нафиг, откуда это вообще прилипло?
Просто:
Запрос = Новый запрос.
Запрос.Текст ="ВЫБРАТЬ
   |   ПриказОПриемеНаРаботу.Ссылка,
   |   ПриказОПриемеНаРаботу.Дата
   |ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу
   |ГДЕ
   |   ПриказОПриемеНаРаботу.Дата МЕЖДУ &Дата1 И &Дата2";
   Запрос.УстановитьПараметр("Дата1", ДатаНачала );
   Запрос.УстановитьПараметр("Дата2", ДатаКонца);
ТЗ = Запрос.Выполнить().Выгрузить();
Для каждого документ из ТЗ Цикл
 ОбъектДокумент = Документ.Ссылка.ПолучитьОбъект();
 ОбъектДокумент.ПометкаУдаления = Истина;
 ОбъектДокумент.Записать();
КонецЦикла;
И отбор по типу документа забыл отразить в запросе.
И лишнюю хрень зачем получаешь? Получай только ссылку и поля по которым идет отбор экономишь скорость чтения кода человеком и получения данных машиной.
:btbzdb:
Не могли бы вы помочь включить в запрос отбор по типу документа?

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
1.кидаешь на форму строковое поле
2.в ПриОткрытии() заполняешь его список выбора именами документов из метаданных
3.подменяешь выделенное место на то что у тебя в поле
|ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн NastyStep

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-04-06
  • Сайт: 
  • Профессия: Ученик 1С
1.кидаешь на форму строковое поле
2.в ПриОткрытии() заполняешь его список выбора именами документов из метаданных
3.подменяешь выделенное место на то что у тебя в поле
|ИЗ
   |   Документ.ПриказОПриемеНаРаботу КАК ПриказОПриемеНаРаботу

Логика понятна, реализовать не получается:(
т.е. именно заполнение списка именами документов и синтаксис следующего действия.
Подскажите, пожалуйста.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
СписокДокументов = Новый СписокЗначений;
Для каждого Док Из Метаданные.Документы Цикл
    СписокДокументов.Добавить(Док.Имя, Док.Синоним);
КонецЦикла;

не проверял, лень )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Hedinnk

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 14
  • КПД: 17%
  • Регистрация: 2016-03-04
  • Сайт: 
  • Профессия: Программист 1С
Правильнее использовать УстановитьПометкуУдаления
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Правильнее использовать УстановитьПометкуУдаления

может вы просветите в чем разница?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Как создать нескольких документов "расчет при увольнении" на основании кадрового документа "увольнение" как Отпуска

Автор cozuРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 2964
Последний ответ 21 Мар 2015, 20:24
от дфтын
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4004
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
Реквизит "Ссылка" у справочников и документов

Автор leklerkРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2842
Последний ответ 29 Май 2013, 16:24
от leklerk
"Дубляж" документов реализации в ВзаиморасчетыКомпанииОстаткиИОбороты

Автор mspuzРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1700
Последний ответ 24 Янв 2014, 13:55
от mspuz
Неясна схема создания документов в "1С: ERP УП 2.1".

Автор РексарычРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1664
Последний ответ 29 Июн 2016, 12:04
от Sandi

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
135 Сообщений
alex0402
81 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
76 Сообщений
BuhRust
24 Сообщений
Golickoff Golickoff
23 Сообщений
ilyay ilyay
21 Сообщений
AIFrame
21 Сообщений
Kironten
20 Сообщений
Варвар
20 Сообщений
Римма
18 Сообщений

* Кто онлайн

  • Точка Гостей: 944
  • Точка Скрытых: 0
  • Точка Пользователей: 12
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal