|
Пометка удаления | ☑ | ||
|---|---|---|---|---|
|
0
Dooro
04.06.08
✎
10:56
|
Такая задача -
1.Есть документ заказ покупателя(резервирует товар) и подчиненный док - снятие резерва. 2. В правах пользователя настройка - запрет на пометку удаления этих документов. 3. Мне нужно что бы при проведении данным пользователем документа снятие резерва обходить запрет на пометку удаления, и помечать на удаление документ основание - заказ покупателя.(все автоматичестки без участия пользователя) возможно ли такое? Если возможно то как реализовать? |
|||
|
1
ТелепатБот
гуру
04.06.08
✎
10:56
|
||||
|
2
Dooro
04.06.08
✎
11:13
|
Либо каким то образом отключить клавишу делете- в прграмме, тогда я разрешу удаление но кнопку уберу
|
|||
|
3
akostrov
04.06.08
✎
11:18
|
Заказ покупателя не резервирует товар, эт что за конфа такая?
Товар может резервироваться доком резервирование товаров и поступлением товаров |
|||
|
4
Вопрос_по_Бух
04.06.08
✎
11:20
|
(0) а зачем тебе это надо ? всем запрети. напиши робота, которому разрешишь это делать и делай это в определенный момент.
|
|||
|
5
Dooro
04.06.08
✎
11:20
|
Не ну говорю у меня резервирует значит резервируте. По сути вопроса есть предложения?
|
|||
|
6
Dooro
04.06.08
✎
11:21
|
Вопрос_по_Бух насчет робота можно подробней?
|
|||
|
7
Dooro
04.06.08
✎
11:21
|
мне это нужно в момент проведения при определенных условиях
|
|||
|
8
Вопрос_по_Бух
04.06.08
✎
11:22
|
(3) с чего эт не резервирует ? ставь галку резервирование и жми кнопку "Заполнить и провести" если товар есть на складе он поставить размещение при проведении дока зарезервируется.... разве нет ?:)
|
|||
|
9
Salvador Limones
04.06.08
✎
11:23
|
Платформа какая?
|
|||
|
10
Dooro
04.06.08
✎
11:23
|
Да все резервируется. просто человек может конфу не изучил еще :)
|
|||
|
11
Dooro
04.06.08
✎
11:24
|
платформа 8.0 релиз 18
|
|||
|
12
akostrov
04.06.08
✎
11:25
|
Программно можно. Права восстанови на пометку
Есть процедура в форме списка журнала Передустановкойпометкиудаления Проверяй на подчиненность и если нет Отказ=истина; |
|||
|
13
Dooro
04.06.08
✎
11:26
|
Тоесть восстановить права на пометку удаления в момент проведения? а потом снять опять?
|
|||
|
14
Вопрос_по_Бух
04.06.08
✎
11:27
|
ну счас миня панисет:)) (6) например ... создай пользователя робот...запускайся под ним вечером и у этого пользователя автоматом стартует просмотр документов резервирования смотри кто основание если все условия совпадают то меть на удаление нужные тебе заказы.
|
|||
|
15
Dooro
04.06.08
✎
11:28
|
Журнал передУстановкойПометкиУдаления? щас гляну. Я понял . ты по другому предлагаешь
|
|||
|
16
akostrov
04.06.08
✎
11:28
|
Нет, права должны быть по любому на пометку удаления,
просто регулировать это событие ты будешь программно процедурой Передустановкойпометкиудаления |
|||
|
17
akostrov
04.06.08
✎
11:28
|
Не журнал, форма списка в доке.
|
|||
|
18
Dooro
04.06.08
✎
11:29
|
Вопрос_по_Бух я понял. идея хороша. Попробую такого робота создать. Можно даже мне помочь :)
|
|||
|
19
akostrov
04.06.08
✎
11:30
|
(14) Какого нахрен робота. Ты с какой планеты?
|
|||
|
20
Вопрос_по_Бух
04.06.08
✎
11:30
|
(18) сам головой пошИвели :)
|
|||
|
21
Dooro
04.06.08
✎
11:30
|
akostrov и твоя мне нравится. идея. тоесть процедура перед установкопометки в форме списка есть .? посморю щас
|
|||
|
22
Dooro
04.06.08
✎
11:31
|
почему, робот тоже хорошо. тем более есть робот регламентных операций уже :)
|
|||
|
23
akostrov
04.06.08
✎
11:31
|
Не робота - а регламетное задание для этого существует.
|
|||
|
24
Dooro
04.06.08
✎
11:32
|
У меня он робот :)
|
|||
|
25
Вопрос_по_Бух
04.06.08
✎
11:32
|
(19) тот который будет выполнять регламентные задания. я с планеты theмля :)
|
|||
|
26
Dooro
04.06.08
✎
11:32
|
у меня тьиповая но страшно мною переделана
|
|||
|
27
Вопрос_по_Бух
04.06.08
✎
11:34
|
(23) увы с ними не было времени разобраться ... обещаю счас разберусь... моя идея не претендует на золотую идею года :)
|
|||
|
28
akostrov
04.06.08
✎
11:35
|
У меня дома собачка-робот, поставлю ему пару регламентных заданий.
|
|||
|
29
Вопрос_по_Бух
04.06.08
✎
11:36
|
(23) у меня 8.0. подскажи как без регламентного это сделать ?
|
|||
|
30
Вопрос_по_Бух
04.06.08
✎
11:38
|
+(29) или почитать
|
|||
|
31
akostrov
04.06.08
✎
11:38
|
(27) Там не сложно. Создаешь общий модуль. В нем пишешь обработку задания(процедуру).
Создаешь регламентной задание с ссылкой на процедуру из модуля, устанавливаешь в нем рассписание. И ждешь фоновое задание в журнале регистрации. |
|||
|
32
akostrov
04.06.08
✎
11:42
|
В 8,0 нет тогда, да по заданию windows из коммандной строки с запуском 1С и проверкой в гл модуле имени пользователя для запуска процедуры.
|
|||
|
33
Вопрос_по_Бух
04.06.08
✎
11:46
|
(32) поэтому я и говорил (14), а с 8.1 вроде понял как все это делается ... счас буду практиковаться :)
|
|||
|
34
Вопрос_по_Бух
04.06.08
✎
11:48
|
(31) спасибо:)
|
|||
|
35
Dooro
04.06.08
✎
11:57
|
//////////Удаление Счета и док реализации и заказа/////////////////////////////////////////////////
Попытка Если НЕ Отказ Тогда СчетО = УдалениеСчетНаОплату(); Если СчетО <> Неопределено Тогда ФормаСчет = СчетО.ПолучитьФорму("ФормаДокумента"); Если ФормаСчет.Открыта() Тогда ФормаСчет.Модифицированность=Ложь; ФормаСчет.Закрыть(); КонецЕсли; СсылкаОсн = ДокументОснование.Ссылка.ДокументОснование.Ссылка; ФормаС=СсылкаОсн.ПолучитьФорму("ФормаДокумента"); Если ФормаС.Открыта() Тогда ФормаС.Модифицированность=Ложь; ФормаС.Закрыть(); КонецЕсли; ОбъектР = СсылкаОсн.ПолучитьОбъект(); ОбъектР.УстановитьПометкуУдаления(Истина); ОбъектСч = СчетО.ПолучитьОбъект(); ОбъектСЧ.УстановитьПометкуУдаления(Истина); КонецЕсли; КонецЕсли; Исключение; Сообщить("Не удалось удалить Объекты"); КонецПопытки; /////////////////////////////////////////////////////////////////// Попытка Если НЕ Отказ Тогда ФормаД=ДокументОснование.Ссылка.ПолучитьФорму("ФормаДокумента"); Если ФормаД.Открыта() Тогда ФормаД.Модифицированность = Ложь; ФормаД.Закрыть(); ОбъектЗаказ=ДокументОснование.Ссылка.ПолучитьОбъект(); ОбъектЗаказ.УстановитьПометкуУдаления(Истина); Сообщить("Заказ покупателя удален!"); КонецЕсли; КонецЕсли; Исключение; Сообщить("Не удалось удалить Объекты"); КонецПопытки; |
|||
|
36
Dooro
04.06.08
✎
11:57
|
Мда .. Вот функция проверки в модуле док снятия резерва.
Функция УдалениеСчетНаОплату() Экспорт; Попытка СсылкаОсн = ДокументОснование.Ссылка.ДокументОснование.Ссылка; Если СсылкаОсн.ПометкаУдаления = ЛОЖЬ И НЕ ССылкаОсн.Проведен И СсылкаОсн.ХозОперация=Справочники.ХозОперации.РеализацияТоваров Тогда Результат = Неопределено; ТекстЗапроса = "ВЫБРАТЬ |ПодчиненныеДокументы.Ссылка КАК ПодчиненныйДокумент |ИЗ |КритерийОтбора.ПодчиненныеДокументы(&Ссылка) КАК ПодчиненныеДокументы"; Запрос=Новый Запрос; Запрос.Текст=ТекстЗапроса; Запрос.УстановитьПараметр("Ссылка",СсылкаОсн); Попытка Выборка=Запрос.Выполнить().Выбрать(); Исключение; КонецПопытки; Пока Выборка.Следующий() Цикл ПодчиненныйДокумент=Выборка.ПодчиненныйДокумент; ПХозОперация=ПодчиненныйДокумент.ХозОперация; Если ПХозОперация=Справочники.ХозОперации.СчетНаОплату И ПодчиненныйДокумент.ПометкаУдаления = Ложь И ПодчиненныйДокумент.Оплата <> "ОПЛАЧЕНО" Тогда Результат = ПодчиненныйДокумент.Ссылка; Сообщить("Выписанный ранее и не отмеченный как ОПЛАЧЕНО , СЧЕТ НА ОПЛАТУ,со снятием резерва,"); Сообщить("считается недействительным и помечен на удаление! ТДМ"); Сообщить("Документ реализации - ОСНОВАНИЕ для СЧЕТ НА ОПЛАТУ считается недействительным и помечен на удаление."); КонецЕсли; КонецЦикла; КонецЕсли; Исключение; КонецПопытки; Возврат Результат; КонецФункции А вот процедура при проведении //////////Удаление Счета и док реализации и заказа///////////////////////////////////////////////// Попытка Если НЕ Отказ Тогда СчетО = УдалениеСчетНаОплату(); Если СчетО <> Неопределено Тогда ФормаСчет = СчетО.ПолучитьФорму("ФормаДокумента"); Если ФормаСчет.Открыта() Тогда ФормаСчет.Модифицированность=Ложь; ФормаСчет.Закрыть(); КонецЕсли; СсылкаОсн = ДокументОснование.Ссылка.ДокументОснование.Ссылка; ФормаС=СсылкаОсн.ПолучитьФорму("ФормаДокумента"); Если ФормаС.Открыта() Тогда ФормаС.Модифицированность=Ложь; ФормаС.Закрыть(); КонецЕсли; ОбъектР = СсылкаОсн.ПолучитьОбъект(); ОбъектР.УстановитьПометкуУдаления(Истина); ОбъектСч = СчетО.ПолучитьОбъект(); ОбъектСЧ.УстановитьПометкуУдаления(Истина); КонецЕсли; КонецЕсли; Исключение; Сообщить("Не удалось удалить Объекты"); КонецПопытки; /////////////////////////////////////////////////////////////////// Попытка Если НЕ Отказ Тогда ФормаД=ДокументОснование.Ссылка.ПолучитьФорму("ФормаДокумента"); Если ФормаД.Открыта() Тогда ФормаД.Модифицированность = Ложь; ФормаД.Закрыть(); ОбъектЗаказ=ДокументОснование.Ссылка.ПолучитьОбъект(); ОбъектЗаказ.УстановитьПометкуУдаления(Истина); Сообщить("Заказ покупателя удален!"); КонецЕсли; КонецЕсли; Исключение; Сообщить("Не удалось удалить Объекты"); КонецПопытки; Если можно покажите пальцем где мне написать разрешение на єти действия. Тоесть по другому вопрос. Если пользователю разрешено помечать в правах а мне нужно єто запретить в списке єтих документов но разрешить указанніе віше действия. покажите пожалуйста пальцем куда и что мне написать Буду спасибо обязан |
|||
|
37
akostrov
04.06.08
✎
12:18
|
типа того
"Формасписка" документ ЗаказПокупателя Свойства табличного поля: Процедура ПередУстановкойПометкиУдаления Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ) //твой док-Элемент.ТекущаяСтрока.Ссылка который помечают на удаление СсылкаОсн =Элемент.ТекущаяСтрока.Ссылка.ДокументОснование; Если не СсылкаОсн=Документы.ОтменаРезервирования.ПустаяСсылка() Тогда Отказ=Истина; иначе Отказ=ложь; КонецЕСли; КонецПроцедуры |
|||
|
38
Dooro
04.06.08
✎
12:22
|
Хм и при єтом пользователь не сможет через делете помечать объекты на удаление?
При разрешенных правах на это? щас пробовать буду. |
|||
|
39
akostrov
04.06.08
✎
12:24
|
Не сможет - если отказ=истина, в этом случае идет аналогичное в семерке
СтатусВозврата(0); Возврат; Если правильно помню. |
|||
|
40
Dooro
04.06.08
✎
12:24
|
ИнтеГесно .. идея
|
|||
|
41
Dooro
04.06.08
✎
12:24
|
щас
|
|||
|
42
Dooro
04.06.08
✎
12:28
|
СсылкаОсн = Элемент.ТекущаяСтрока.Ссылка.ДокументОснование;
Ведь подчиненный удаляет документ основание а не документ основание удаляет подчиненный СсылкаОсн = Элемент.ТекущаяСтрока.Ссылка.(подчиненный)! только запросом |
|||
|
43
Dooro
04.06.08
✎
12:28
|
чет надо разобраться
|
|||
|
44
akostrov
04.06.08
✎
12:30
|
Ну это я так для примера, ессесно не верно, принцип понял?
Выбрать Подчиненые получилось?, у меня есть процедура для этого. |
|||
|
45
Dooro
04.06.08
✎
12:31
|
а да ты прав
|
|||
|
46
Dooro
04.06.08
✎
12:33
|
тоесть получаем объект программно и потом при проврке наличия подчиненного проведенного разрешаем пометить на удаление если нет подчиненного то отказ . так?
|
|||
|
47
Dooro
04.06.08
✎
12:34
|
Тоесть проверка такая же должна быть и в модуле формы списка удаляемого объекта.
|
|||
|
48
Dooro
04.06.08
✎
12:36
|
Я понель :)
|
|||
|
49
Dooro
04.06.08
✎
12:36
|
щас .сейчас уделаю
|
|||
|
50
akostrov
04.06.08
✎
12:46
|
(46)Именно так
|
|||
|
51
Dooro
04.06.08
✎
12:58
|
Результат = Ложь;
ТекстЗапроса = "ВЫБРАТЬ |ПодчиненныеДокументы.Ссылка КАК ПодчиненныйДокумент |ИЗ |КритерийОтбора.ПодчиненныеДокументы(&Ссылка) КАК ПодчиненныеДокументы"; Запрос=Новый Запрос; Запрос.Текст=ТекстЗапроса; Запрос.УстановитьПараметр("Ссылка",Элемент.ТекущаяСтрока.Ссылка); Попытка Выборка=Запрос.Выполнить().Выбрать(); Исключение КонецПопытки; Пока Выборка.Следующий() Цикл ПодчиненныйДокумент = Выборка.ПодчиненныйДокумент; ПХозОперация = ПодчиненныйДокумент.ХозОперация; Попытка Если ПХозОперация = Справочники.ХозОперации.СнятиеРезерваПокупателя И ПодчиненныйДокумент.ПометкаУдаления = Ложь И ПодчиненныйДокумент.Проведен = Истина Тогда Результат = Истина; КонецЕсли; Исключение КонецПопытки; КонецЦикла; Отказ = НЕ Результат; |
|||
|
52
Dooro
04.06.08
✎
12:58
|
работает
|
|||
|
53
Dooro
04.06.08
✎
12:58
|
хех
|
|||
|
54
Dooro
04.06.08
✎
13:00
|
на кнопку делет вообче не реагирует. надо пользователям хоть написать что мол не топчите напрасно делете. :)
|
|||
|
55
akostrov
04.06.08
✎
13:02
|
Отказ = НЕ Результат; :) эт чтоб тяжелей для понимая
Результат=ложь, не проще :) |
|||
|
56
akiDemon666
04.06.08
✎
13:08
|
(0) Чета я не понял если надо снять резерв, то сними его доком снятие резерва или сторнируй, а если пометить документ основание на удаление то и снятие резерва(подчиненный док) надо помечать по идее...
|
|||
|
57
Dooro
04.06.08
✎
13:09
|
не проще . тогда нужно писать Если результат истина тогда отказ = ложь а так как у меня все написано без если
|
|||
|
58
akostrov
04.06.08
✎
13:15
|
Один фиг, тогда попытку, замени условиями, чтоб было карасиво
|
|||
|
59
Dooro
04.06.08
✎
13:15
|
И снятие резерва помечу на удаление после проведения
|
|||
|
60
Dooro
04.06.08
✎
13:16
|
akostrov попытку я приведу в вид божеский но какие условия изменять .то проба просто главное работает
|
|||
|
61
Dooro
04.06.08
✎
13:21
|
так
Функция ПроверкаПодчиненногоСнятияРезерва(Отказ,СнятьРезерв) Экспорт; Отказ = Истина; ТекстЗапроса = "ВЫБРАТЬ |ПодчиненныеДокументы.Ссылка КАК ПодчиненныйДокумент |ИЗ |КритерийОтбора.ПодчиненныеДокументы(&Ссылка) КАК ПодчиненныеДокументы"; Запрос=Новый Запрос; Запрос.Текст=ТекстЗапроса; Запрос.УстановитьПараметр("Ссылка",СнятьРезерв); Попытка Выборка=Запрос.Выполнить().Выбрать(); Исключение КонецПопытки; Пока Выборка.Следующий() Цикл ПодчиненныйДокумент = Выборка.ПодчиненныйДокумент; ПХозОперация = ПодчиненныйДокумент.ХозОперация; Если ПХозОперация = Справочники.ХозОперации.СнятиеРезерваПокупателя И ПодчиненныйДокумент.ПометкаУдаления = Ложь И ПодчиненныйДокумент.Проведен = Истина Тогда Отказ = Ложь; КонецЕсли; КонецЦикла; КонецФункции |
|||
|
62
Dooro
04.06.08
✎
13:24
|
СнятьРезерв = Элемент.ТекущаяСтрока.Ссылка;
|
|||
|
63
Dooro
04.06.08
✎
13:50
|
Элемент.ТекущаяСтрока.Ссылка не выходит. как при проведении снятие резерва передать ссылку на него сюда в модуль документа заказ покупателя?
|
|||
|
64
akostrov
04.06.08
✎
14:33
|
Чего т не понял, что конкретно тебе нужно при проведении?
|
|||
|
65
Dooro
04.06.08
✎
16:26
|
Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ)
дкСписокПередУстановкойПометкиУдаления(ЭтаФорма, Элемент, Отказ, глПрава); Попытка Если РольДоступна("Управляющий") Тогда Если Элемент.ТекущаяСтрока.Ссылка<>Документы.РеализацияТоваров.ПустаяСсылка() Тогда Отказ = Истина; Сообщить("Нет прав на удаление документа!"); КонецЕсли; КонецЕсли; Исключение; КонецПопытки; КонецПроцедуры |
|||
|
66
Dooro
04.06.08
✎
16:26
|
Оказалось все проще
|
|||
|
67
Dooro
04.06.08
✎
16:27
|
работает при установленном праве пометки удаления
|
|||
|
68
Dooro
04.06.08
✎
16:28
|
тк проведение проводится при закрытой форме списка то удаление разрешает если форму открыть то выделится любой документ и ссылка пустой не будет
|
|||
|
69
Dooro
04.06.08
✎
16:29
|
тоесть
Процедура СписокПередУстановкойПометкиУдаления(Элемент, Отказ) дкСписокПередУстановкойПометкиУдаления(ЭтаФорма, Элемент, Отказ, глПрава); Попытка Если РольДоступна("Управляющий") Тогда Если Элемент.ТекущаяСтрока.Ссылка<>Документы.СчетНаОплату.ПустаяСсылка() Тогда Отказ = Истина; Сообщить("Нет прав на удаление документа!"); КонецЕсли; КонецЕсли; Исключение; КонецПопытки; КонецПроцедуры |
|||
|
70
AndreYAN
04.06.08
✎
16:35
|
(0) А если использовать процедуру установки пометки удаления из привилегированного модуля?
|
|||
|
71
akostrov
04.06.08
✎
18:45
|
в модуле дока
Процедура ОбработкаУдаленияПроведения(Отказ) КонецПроцедуры |
|||
|
72
akostrov
04.06.08
✎
18:47
|
и подробнее
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ОбработкаУдаленияПроведения (UndoPosting) Синтаксис: ОбработкаУдаленияПроведения(<Отказ>) Параметры: <Отказ> Тип: Булево. Признак отмены проведения документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то отмена проведения документа произведена не будет. Значение по умолчанию: Ложь Описание: Возникает при отмене проведения документа. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |