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

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

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

Оффлайн BEV

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

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



Онлайн Kironten

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

Оффлайн DmitriyF

  • *****
  • Сообщений: 706
  • РЕПУТАЦИЯ: 43
  • КПД: 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
Просмотров: 2776
Последний ответ 21 Мар 2015, 20:24
от дфтын
Не работает структура подчиненности документов "Требование-накладная" и "Передач

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

oleg-x
140 Сообщений
alex0402
112 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
ilyay ilyay
51 Сообщений
Golickoff Golickoff
49 Сообщений
AIFrame
43 Сообщений
wise wise
40 Сообщений
ab30ru
38 Сообщений
Амал
35 Сообщений
Dethmontt Dethmontt
25 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal