#0
by Малиночка
Привет.подскажите пожалуйста как сделать чтобы при отменен проведения документа помечались на удаление записи подчиненного спавочника ШтатноеРасписание (он подчинен справочнику Подразделение) КонецПроцедуры и как сделать запрет на повторный ввод должности, уже существующей в выбранном подразделении
#1
by TM
Пока СпрШтатноеРасписание.ПолучитьЭлемент=1, наверное, а не Пока СпрШтатноеРасписание.ТекущийЭлемент=1
#4
by TM
Ну, значит Вы лучше меня знаете, в чем ошибка. Но я, например, не вижу цикла, по элементам подчиненного справочника. А Вы видите?
#5
by Asmody
даже с учетом поправки вот это СпрШтатноеРасписание.НайтиПоРеквизиту("Должность",ТекущийДокумент,)=1 разрушает весь цикл напрочь
#8
by TM
До этого мы еще не добрались :). Мне вообще непонятно, что нужно сделать. И для чего Вопрос в якобы цикле. И почему реквизит "Должность" имеет тип "Документ". Но не будем перепрыгивать через несколько квестов основной сюжетной линии.
#9
by Малиночка
а сделать надо при отменен проведения пометить в справочнике штатное расписание все то что было введено текущем документом
#10
by TM
Боюсь разочаровать. Термос не знает, какая температура на улице. Справочник не знает, каким документом (и документом ли) вводили строку (за исключением значений переодических реквизитов, изменяемых документам, но это не наш случай).
#11
by Asmody
я думаю, что без описания структур справочника ШтатноеРасписание telepat.dll дальше работать не сможет
#12
by Михей
ужасный код, замечания: 1. При проведении нельзя создаваить новые элементы справочника, можно менять периодичесие значения это да. 2. Нельзя задавать при отмене Вопросы так как вывполняется транзакция, ты блокируешь всех! 3. Нельзя юзать метод Записать без Попытки Исключения, а то и транзакцию заюзать при необходимости, вдруг кто то проводит такой же документ с тобой параллельно.
#13
by TM
Да понятно всё. Воссерманаъ звать не нужно. Коллега програмно в модуле дока создает элементы справочника. И хочет програмно же при отмене проведения поудалять их. Но вот как ей помочь не плодя лишних сущностей, как то ссылка в элементе справочника на док или ссылка в ТЧ дока на элемент справочника я не знаю, увы.
#14
by Asmody
[1. При проведении нельзя создаваить новые элементы справочника] - это почему еще? [транзакцию заюзать] - сам же сказал, что [вывполняется транзакция]. Вложенные транзакции в 1С конечно возможны, но толку от них никакой.
#16
by Asmody
когда я вижу строку типа такой, какая в , то я обычно надеюсь на адекватность ее писавщего в плане использования синтаксиса хотя бы. Но реквизит "Должность" типа "Документ" меня очень сильно смущает...
#17
by Михей
Транзакцию в смысле есе у тебя 52000 строк в доке, ты начинаешь его проводить, у тебя создаеться 51999 элементов а на последнем у тебя вылетает ошибка. И что получаеццо? Недоделанный док.
#19
by Asmody
т.е. я правильно понимаю, что в документе в ТЧ есть реквизит "Должность" типа Справочник.Должности, и при этом в справочнике ШтатноеРасписание есть реквизит "Должность" тоже типа Справочник.Должности? Что будет, если я создам документ, как-то заполню его ТЧ, проведу, потом сделаю "Скопировать документ", и полученную копию снова проведу? Точнее, не что будет (это и так понятно), а как _должно_быть_?
#23
by Asmody
но я вообще-то не на это намекал. если я проведу скопированный документ, то в штатном расписании появятся по две одинаковые должности. я думаю, это не совсем то, что задумывалось, так?
#27
by Малиночка
но что должно быть вместо этой строки не понимаю Если СпрШтатноеРасписание.НайтиПоРеквизиту("Должность",ТекущийДокумент,)=1 Тогда
#32
by Злобный Фей
Стоп. Что в документе есть должность? У тебя в есть строчка: А в У тебя это уже ТекущийДокумент; Где правда? И не надо СпрПодразделения. Убери оно вообще отсюда. И вопрос убери, ибо в транзакции вопрос не уместен, доки можно проводить/распроводить и не интерактивно, а обработкой, например
#33
by Малиночка
да, в в первой процедуре так СпрШтатноеРасписание.Должность=Должность; счас исправила на
#40
by Малиночка
я значит записала должности в справочник Должности, в документе выбираю из справочника. провожу. все ок, а когда отменяю проведение. то пометку не ставит
#42
by Малиночка
ну как? еще разок: справочник штатное расписание должность тип справочник.должности документ должность тип справочник.должности код: СпрШтатноеРасписание=СоздатьОбъект("Справочник.ШтатноеРасписание");
#43
by Злобный Фей
1. Открой справочник Подразделения. 2. Найди подразделение из твоего тестового документа. 3. Открой подчиненный справочник ШтатноеРасписание для этого элемента 4. Найди там элемент, где Должность = твоей должности из документа
#44
by Filin396
Что это? ИспользоватьВладельца(Подразделение.ТекущийЭлемент) Чему подчинен справочник ШтатноеРасписание?
#49
by Filin396
Кроме того - если уж он подчиненный, то одна должность штатного расписания может присутствовать в разных подразделениях. И ты их все убъеш.
#52
by Малиночка
ну а как мне тогда сделать чтобы действие документа отменялось, соответственно как я понимаю вводимые строки должны удаляться или я неправа?
#54
by Filin396
Окромя того надо при проведении проверять, нет ли уже такого элемента в справочнике. А то разными доками можно дублировать. Насколько я понял этого недолжно быть.
#56
by Малиночка
я так делала без верхних строк, у меня вот такая ошибка Пока СпрШтатноеРасписание.ПолучитьЭлемент<<?>>)=1 Цикл {Документ.ВводШтатнойДолжности.Модуль Документа}: Выражение должно иметь логический тип При проверке модуля обнаружены синтаксические ошибки!
#59
by Cthulhu
Нет слов - одни слюни... 1) создали и провели документ - создались элементы справочника; 2) поюзали эти элементы справочника в других объектах данных, ну типа заполнили штатное расписание; 3) распровели документ из п.1... если по-вашему за подобный код не нужно убивать на месте из рогатки - то вы глубоко и безвовзвратно добрый мякиш.. хотя в принципе я наверное тоже мякиш... если таки припекло, делайте так: 1) добавляете в многострочную часть реквизит "ПозицияШтатногоРасписания" типа "Справочник.ШтатноеРасписание". 2) модуль документа, в процедуре "ОбработкаПроведения": после каждого "СпрШтатноеРасписание.Записать;" делайте "ПозицияШтатногоРасписания=СпрШтатноеРасписание.ТекущийЭлемент;" 3) модуль документа, в процедуре "ОбработкаУдаленияПроведения": перебирайте строки, и по каждой строке: "Если СпрШтатноеРасписание.НайтиЭлемент(ПозицияШтатногоРасписания)=1 Тогда СпрШтатноеРасписание.Удалить; ПозицияШтатногоРасписания=""; КонецЕсли;" --- и пользуйтесь на здоровье этой корректной реализацией вопиюще некорректного решения невнятно сформулированной и совсем не проработанной проблемы.. ЗЫ: я тут подумал.. я наверное не от доброты это, а исключительно в злобных целях... ))))
#61
by Filin396
Дауж, добрый ты -))) Пока человек не споткнется сам, толком не поймет. Задача была конкретная, мысль понятна, спросили про реализацию - реализовали. Пусть пробует -)))
#66
by Filin396
Зачем вобще такая байда? Создавать справочники в документах - это, как уже доходчиво объяснил Cthulhu, не есть хорошо. Может както по другому?
#69
by Малиночка
Для каждого подразделения (следовательно, нужно создать справочник Подразделения) необходимо вести список вакантных и занятых должностей (создать справочник Должности) с указанием количества вакантных и занятых ставок (создать справочник Штатное расписание, подчиненный справочнику Подразделения, с реквизитами Должность (тип - справочник Должности), Количество ставок, Количество вакантных ставок, Количество занятых ставок). Для ввода новой штатной должности в штатное расписание и для изменения штатного расписания необходимо разработать специальные документы (Ввод штатной должности и Изменение штатного расписания). Документ "Ввод штатной должности" должен только вводить в справочник Штатное расписание новую должность с изначальным общим количеством ставок, при этом должен заполняться тем же количеством ставок реквизит Количество вакантных ставок. В модуле документа должен быть реализован запрет на повторный ввод должности, уже существующей в выбранном подразделении. В случае отмены проведения документа - добавленные строки должны удаляться
#72
by Filin396
Ужос. Вобще для этого есть регистры там всякие, для хранения разных количеств в разных разрезах. Ктож тебе такое задал? А что не заработало в ?
#73
by Cthulhu
: "нет" - в смысле не удалять... а, я понял. я теперь тоже если буду давать задание - то только такое, которое вразрез противоречит правилам здорового рассудка и корректности. чтобы не подсказывали тут некоторые, застревая понималкой на тупом "з-а-ч-е-ммм???" )))
#80
by Filin396
Рано радуешся. Теперь тебе проверок тьму втыкать в проведение. На предмет присутствия уже в справочнике, пометки уже на удаление и т.д.
#83
by Filin396
+ запрет на смену подразделения в проведенном документе, и фиг знает на что еще. Плохое у тебя задание короче.
#86
by Малиночка
надеюсь что получится у меян завтра остальное, а то опять придется за помощью к вам обращаться
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Пометка на удаление
- Удаление помученных на удаление элементов справочников
- Как запретить удаление документа (или пометку на удаление) ?
- Роль: удаление и интерактивное удаление
- Пометка на удаление
- Как запретить удаление и даже пометку на удаление элементов справочника?
- Пометка удаления в запросе
- Поле "пометка" в форме!
- Пометка на удаление при обмене
- Быстрая пометка на удаление документов
- 8.3. Пометка на удаление справочника-владельца помечает на удаление подчиненные
В этой группе 1С
- Подскажите, возможно ли задать определенное время документу при проведении в 1с 7.7
- Как ограничить список выбора организаций в документе ?
- v7: Получение компенсации от военкомата за военные сборы
- Возврат услуг Управление торговлей 10.3
- v7: УПП: Продажа объектов строительства (08-3)
- Ошибка: "Для документов оперативного учета нельзя использовать другую дату"
- Создание документа программно. Как?
- Перенос контрагентов из 7 версии 1С: предприятие в 8 версию
- Перебрать табличные части нескольких документов одним запросом?
- как с диска ИТС скопировать информацию
- 1с управление торговлей оперативно не проводится "расходный ордер"
- Перенос данных из торговли и склад 7.7 в УТ 10.3
- v8 Поле объекта не обнаружено (СсылкаНаОбъект)
- Смена знака разделителя триад
- Где ИНВ-11 в УПП 8.1?
- Как получить Уникальный Идентификатор объекта в 1С 77?
- Обновление текстового поля в табличной части?
- Определить запущена ли обработка
- Конфигурация узла распределенной ИБ не соответствует ожидаемой
- Запуск 1С 8.1 пользователем.