Совпадения в табличной части дока, как проверить ? #92225


#0 by SanG
Добрый день! Есть документ, табличная часть которого состоит из выборки других документов, например: документ "Акт" составлен из документов "Работа" путем заполнения из процедуры "заполнить". Эта процедура делает выборку доков "Работа" и заполняет ими "акт" в единственном экземпляре. Вопрос: если необходимо добавить "в ручную" документ через Ins или F9, как проверить на уникальность выбранного дока "работа", т.е. отсечь добавление уже указанного в "акте" документа ?
#1 by Таня
так же как в поступлении сделана проверка на товары
#2 by Парижская фанера
А типовые посмотреть и предпоределенные процедуры документов в СП?
#3 by SanG
В конфе "ТиС" ? У меня нет под рукой этой конфы, но у меня похожая задача, я ее в упрощенном виде описал, интересно само решение задачи ... подскажите, плиз.
#4 by SanG
Какие предопределенные процедуры вы имеете ввиду ? Я использую процедуру ПриНачалеВыбораЗначения, в которой открываю форму журнала документов "Работа", затем в процедуре Пересчет, определяю колонку пересчета, если таковой является колонка, содержащая документы "Работа", то присваиваю значения выбранного документа другим колонкам, так вот мне необходимо проверить на уникальность выбранного дока, к этому еще и запретить копирование строки табличной части дока "акт" ... вот такая вот ситуевина
#5 by Таня
ну так собери их в ТЗ и проверяй НайтиЗначение
#6 by SanG
Я вот только что подумал и пришла в голову мысль, перебрать строки с накоплением, т.е. в случае проверки строки ввести переменную, которая будет считать количество одинаковых элементов, если значение равно 1, тогда содержание строки уникально, если больше значит нет, ну как ?
#7 by miki
6. Попытайся думать чаще.
#8 by miki
5. Можно проще.имхо.
#9 by SanG
Как проще ?
#10 by miki
9. Пусть Таня покажет код для варианта из . А я его зарисую одной строкой, одним методом.
#11 by SanG
Я понял ...))), если Таня не покажет, я в пролете ...))), господа, делитесь опытом с начинающими ... и воздаться вам за труды ваши ...
#12 by miki
12. Утром воздаяние - вечером стулья. Можно и наоборот, но воздаяния - вперед.
#13 by Таня
не буду я ничего писать, сам пиши.
#14 by SanG
Покажите стулья, а то может и воздавать не за что ...))) шутка ... ну ладно тебе, колись на решение, видишь Таня игнорирует ветку
#16 by SanG
Вернее так:
#17 by miki
Что это было? Остынь. ------- Недавно была ветка, там admin1 похожую задачку решал. Если добавляешь по одному из ТЧ, то можно проверять в ОбработкаВыбораЗначения. Выгружаешь ТЧ в ТЗ и или Выгружаешь ТЧ в СЗ и Принадлежит. Если множественным подбором, то ТЧ в СЗ и Установить.
#18 by SanG
Прикольно ... только что сделал, все работает через ОбработкаВыбораЗначения с выгрузкой в СЗ и использованием принадлежит, а множественный подбор у меня по другому реализован ... спасибо
#19 by SanG
Я только не знаю как использовать установить, а то может быть мне можно будет свой код упростить в процедуре "заполнить" ?
#20 by SanG
Есть еще один момент, который не учли ... я говорил, что вариант с копированием должен отсекаться, иначе в этом случае с "ОбработкаВыбораЗначения" проверки нет на вхождение в список ? Как быть ?
#21 by miki
>>  и использованием принадлежит >> проверки нет на вхождение в список Чё-то не вяжется с .
#22 by SanG
В процедуре ОбработкаВыбораЗначения я сделал как ты и сказал выгрузку ТЧ в СЗ и проверил на вхождение в СЗ выбранного значения, отработал условия "Да" и "Нет", но как быть если строку просто скопировали ("F9"), как проверить в этом случае ? Через ПриНачалеРедактированияСтроки или ПриОкончанииРедактированияСтроки, да ?
#23 by SanG
А что не вяжется то ?
#24 by miki
Запрети копировать. В этом случае и проверять не стОит. По-любому работы задублируются. Ибо.
#25 by SanG
Неужели никто не знает как обыграть ситуацию с копированием строки табличной части документа ?! Я на форуме задал в поиске и практически ничего не нашел ... одни рассуждения, ничего конкретного по вопросу ...
#26 by miki
Куда тебе еще конкретнее? На _этом_ форуме лично я постил как быграть ситуацию с копированием строки табличной части документа. ----- Воздаяния пока не доходят чё-то.
#27 by SanG
Как запретить копировать ? А проверять нужно потому что, в моем случае заполнить документ можно либо через кнопочку заполнить, с соответствующей процедурой, либо через Ins, его мы только что разобрали, уже не продублируешь, а вот в случае с F9 вопрос не решен ... скопировал строку, а проверить на вхождение например в тот же СЗ никак, или как ?
#28 by SanG
Если я не ошибаюсь, то ты предлагал решение через обработку процедуры ПриОкончанииРедактированияСтроки, да ?
#29 by SanG
Есть ли возможность просто, как с процедурой ВводНового для документа, проверить было копирование или нет ?
#30 by miki
Было ли копирование узнать не умею. Но копирование забанить можно так:
#31 by SanG
Так в этом случае получается, что вообще нельзя даже через Ins строку добавить ... А может так: Может чего-то и не хватает, но по логике скопированный документ при начале редактирования строки уже имеет значение поля "док", поэтому ...
#32 by SanG
Нужно только убрать УдалитьСтроку и разобраться как очистить скопированную строку или отменить действие присвоения значения, потому как не до конца она правильно работает ...
#33 by miki
31. Вставь в свою обработку, которая сейчас у тебя Ins обрабатывает.
#34 by romix
Проверку значений в таблицах на уникальность я всегда делаю через Свернуть. Свертка ведется по двум колонкам - в одной значения, которые надо проверить на дублирование, а в другой - значения 1. Если после свертки во второй колонке возникают значения, большие чем 1, то это дублирующиеся значения. Чтобы быстро выгрузить строки документа в таблицу значений (чтобы потом сворачивать и проверять), используй встроенный метод 1С.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям