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

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

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

Оффлайн BEV

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

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


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

СМОТРЕТЬ >>


Оффлайн Kironten

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

Оффлайн DmitriyF

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

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
146 Сообщений
alex0402
115 Сообщений
Norfolk
51 Сообщений
LexaK
45 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
друган
21 Сообщений
alexandr_ll
20 Сообщений
AsadRoman
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal