Имя: Пароль:
1C
1C 7.7
v7: Перекрестные ссылки и удаление документов - нужна помощь.
, ,
0 bigdenis22
 
10.09.15
10:06
Есть Док ПрВыход (регистрируется выход продукции из производства), есть "подчиненный" док СтрокаПрВыход - им двигаются регистры.
Первый док не двигает регистры, но в нем заполняются и хранятся некоторые параметры выходящей продукции, в том числе имеются метка времени выхода и ссылка на СтрокаПрВыход (для оперативной работы с ним).
Так вот суть: в родительском документе есть ссылки на подчиненные (каждой строке подчинен док), и в подчиненном есть ссылка на родительский документ. - ИТОГ - все доки помечены на удаление, но не удаляются, пеняя на ссылки друг на друга...

удаление без контроля ссылок - считаю не кошерно.
может кто может предложить варианты ?
1 ДенисЧ
 
10.09.15
10:07
вообще-то штатная удалялка такие ситуации обрабатывает
2 mikecool
 
10.09.15
10:07
изменить создание документов для односторонней связи
очистить ссылки в одном из видов и удалить
3 VladZ
 
10.09.15
10:08
Отличный вариант: разработать обработку удаления этих документов.
4 bigdenis22
 
10.09.15
10:28
вот и мне не понятно, почему штатная удалялка не обрабатывает эту ситуацию ???

обработку-то наверно и придется написать, но сначала хочется разобраться в ситуации...

просто последний месяц недосыпаю (в связи с полной перепиской базы) - голова квадратная, вот и думаю, что что-то упустил...
5 bigdenis22
 
10.09.15
10:32
(2) к сожалению, ситуация такова, что ПриРедактированииСтроки() в родительском доке - необходима прямая ссылка на СтрокаПрВыход, подчиненный этой строке.

т.е. ваше замечание - логично, но в моей ситуации - не применимо.
6 Ёпрст
 
10.09.15
10:33
(4) штатное удаление помеченных всё удаляет
7 bigdenis22
 
10.09.15
10:39
(6) писал бы я сюда, еслиб так было :(
у доков существуют ссылки ТОЛЬКО друг на друга...
могу скрины показать - если кто подскажет как их здесь выложить.
8 Масянька
 
10.09.15
10:42
(7) На файлопомойку, сюда - ссылки.
9 bigdenis22
 
10.09.15
10:54
попробуем так
https://yadi.sk/i/IQDtUq0ziytiS
https://yadi.sk/i/6vz60zDviytjX

смотрится?
10 Serg_1960
 
10.09.15
10:55
(6) "Ты не прав"(РАУЗ, "Тестирования и исправления ключей аналитики").
11 bigdenis22
 
10.09.15
11:21
а если делать удаление через обработку, то наверно обязательно надо описать удаление ссылок ?
12 Масянька
 
10.09.15
11:30
(11) Нельзя так делать (по поводу (0)). Нельзя :(
13 bigdenis22
 
10.09.15
11:38
(12) я прошу прощения, но можно подробней ?
14 Масянька
 
10.09.15
11:40
(13) Подробнее - открывай и читай про проектирование реляционных баз данных.
15 bigdenis22
 
10.09.15
11:47
(14) ...
послать можно было и проще.
16 Масянька
 
10.09.15
11:52
(15) Это не "посыл", ни в коем случае...
Просто много чего объяснять/рассказывать нужно.
Да, ты и сам понимаешь (теперь), что нельзя :(
17 bigdenis22
 
10.09.15
12:07
родилась мысль, отказаться от ссылки в родительском документе, заменив её числовым значением номера подчиненного дока, с последующим поиском по номеру среди подчиненных.

(16) очень устал за последний месяц и туго соображаю, вот и хотелось чтоб кто-нибудь разъяснил факт : что перекрестных ссылок допускать нельзя (в 7.7 - так точно).
18 Масянька
 
10.09.15
12:18
(17) Родилась глупая мысль...
Отдохни.
Зачем? Первый док-т - основание для второго (родительский - подчиненный).
А вообще - расскажи смысл сего действа (2 док-ов).
19 bigdenis22
 
10.09.15
13:02
(18) раньше был один док ПрВыход, заполняется в течении дня, в нем строка - конкретный "объект" выходящий из производства, в строке регистрируются параметры выходящего объекта (время выхода, температура, влажность, вес и т.п.) часть этих параметров к регистрам отношения - не имеет.
Движения по регистрам делались разумеется этим доком.
(движения выражаются в перемещении партии частями из склада цех в склад ГП с пересчетом себестоимости)
При этом получили коллизию порядка движений регистра:
так как док заполняется в течении дня, то он может иметь позицию ТОЛЬКО или на начало или на конец заполнения(и движения соответственно тоже)., в первом случае выходит продукция кот. ещё не начала делаться, а во втором - продается та, кот. ещё не вышла из производства.

Поэтому было решено перенести движения в связанный документ СтрокаПрВыход, и проводить его с временем выхода...
А для оперативного программного редактирования подчиненного документа из родительского - сделал прямую ссылку на него.
20 Масянька
 
10.09.15
13:05
(19) А почему один док-т в течении дня? Нельзя делать несколько?
21 bigdenis22
 
10.09.15
13:23
(20) ... сложная история...
во первых :) к первому документу уже привыкли и так им удобно работать.
2) так удобней заполнять и оперативно сравнивать параметры.
иначе пришлось бы делать слишком насыщенный (параметрами) журнал документов(СтрокаПрВыход).
22 Масянька
 
10.09.15
13:26
(21) Мало, что поняла...
Почему нельзя делать несколько док-ов за день?
23 bigdenis22
 
10.09.15
13:38
по сути док ПрВыход это смена весовщика/приемщика, участков 3, в каждом доке прибл. от 100 до 200 строк.
каждая строка должна проводится со своей временной позицией.

т.е. иной выход каждому весовщику вбивать 100-200 доков в день... иногда надо пройти проредактировать параметр по нескольким последним объектам - рыться в обширном журнале - не удобно...
делать накрученый журнал с множественными отборами - мне показалось менее интересным чем связку документов...

тем более у меня есть вторая подобная ситуация, но там двигают регистры и родительский и подчиненные доки...
24 Ёпрст
 
10.09.15
13:46
(9) и ?
если оба документа помечены на удаление - всё удаляется.
Если один из них нет - то ясен пень выдает тебе ссылки в штатной удалялке.
25 Масянька
 
10.09.15
13:46
(23) Серьезно...
Навскидку (хотя, нужно основательно подумать): ПрВыход - документ, не делает движений, хранит информацию; СтрПрВыход - вводится на основании строки ПрВыход, делает движения.
СтрПрВыход - именно на основании, зверь к нему доступа не имеет - все программно.
Хотя, я бы еще подумала...
26 bigdenis22
 
10.09.15
14:05
(24) в родительском поменял ссылку на номер дока - все удалилось...
повторюсь: я тоже считал, что должно работать... но маемо те що маемо...

(25) ну как-то так и задумано :)
27 bigdenis22
 
10.09.15
14:30
вобчем Ёпрст скорее всего прав...
нашел, что некорректно отработало удаление партий, и на три дока СтрокаПрВыход остались ссылки в партиях, и удаление заклинилось(из-за перекрестных ссылок)...

но Масанька натолкнула на верную мысль, что перекрестные ссылки - зло... (благодаря чему и была найдена ошибка).

- 1 док ПрВыход и 230 Строк - поди найди где в этом количестве что зависло...
28 Масянька
 
10.09.15
14:34
(27) Я бы все-таки избавилась от данной связки...
Нельзя автоматизировать ПрВыход? Если не 2-ух кнопок (создать-сохранить), то хотя бы до минимума (создать, ввести пару данных, сохранить). Чтобы все-таки ПрВыход делал движения, а не создал вагон и маленькую тележку подчиненных док-ов.
Хотя, хозяин - барин.
29 bigdenis22
 
10.09.15
16:25
(28)  я в (19) описал, почему пришлось перенести движения в СтрокаПрВыход, хотя я сам не в восторге от данного решения, но надож как-то разруливать ситуацию :)

можно подвести итог:
1) почему не сработала штатная удалялка? - найдены не удаленные партии, кот. на давали удалятся всей цепочке.
2) перекрестные (кольцевые) ссылки в 1с - ЗЛО...
без них не возникает длинных цепочек ВЗАИМОсвязанных объектов.
30 HawkEye
 
10.09.15
17:16
чё тут? автор, штатная все правильно работает...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.