Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: 1cv7 Проблема с вводом данных подчиненного справочника.... подробнее внутри

v7: 1cv7 Проблема с вводом данных подчиненного справочника.... подробнее внутри
Я
   Джордж1
 
11.08.21 - 18:48
Имеются 3 справочника - Товар, Спецификации, НормыРасхода

Спецификации подчинена Товарам, а НормаРасхода Спецификациям


Проблема в чем. Встаем на существующий товар (Товар1) с существующей спецификацией (Спец1). В подчиненных справочниках все ОК.

Переходим на другой товар (Товар2) у которого спецификация не заведена.

Проблема что в этом случае справочник Владелец справочника НормыРасхода остается спозиционирован на спецификации Спец1 Товара1

Пользователи начинают заводить нормы - они привязываются непойми к какому элементу

Как отловить такую ситуацию?
   серый КТУЛХУ
 
1 - 11.08.21 - 18:50
сверять "ИспользоватьВладельца()" с нужным значением в форме списка (или элемента) подчиненного справочника. устанавливать нужного.
   серый КТУЛХУ
 
2 - 11.08.21 - 18:50
наверное можно и через контекст "снаружи"...
   Джордж1
 
3 - 11.08.21 - 18:51
(1)как внутри формы понять какой нужный? счас картинку покажу
   Джордж1
 
4 - 11.08.21 - 18:52
   серый КТУЛХУ
 
5 - 11.08.21 - 19:12
охохонюшки. костылями только тогда. в "предпоследнем" справочнике.
открывать подчиненный только своей кнопкой - с сохранением его контекста в переменную модуля (например, мКонтекстФормыСпискаПодчиненногоСправочника) в процедуре, прописанной в формуле кнопки.
на морду - текстовый реквизит с функцией в формуле, в которой (в модуле формы) закодировать:
мКонтекстФормыСпискаПодчиненногоСправочника.Форма.ТолькоПросмотр(?(мКонтекстФормыСпискаПодчиненногоСправочника.ИспользоватьВладельца()=ТекущийЭлемент(),0,1))
   серый КТУЛХУ
 
6 - 11.08.21 - 19:15
ЗЫ: хотя хз оно успеет обновиться или нет - тогда еще один костыль придумывать придется...
   acanta
 
7 - 11.08.21 - 19:31
Нормы расхода в последних версиях были документами.
   Смотрящий
 
8 - 11.08.21 - 19:36
(4) список открытых форм справочников в глобальную переменную (при закрытии удалять из списка)
при изменении строки справоника владельца смотреть список форм из глобальной переменной и переоткрывать форму
в форме ловить владельца в ПриПовторномОткрытии
   Mikeware
 
9 - 11.08.21 - 19:50
А чего б не переписать по нормальному, без кучи окон?
   серый КТУЛХУ
 
10 - 11.08.21 - 21:13
Только что проверил - (5) отлично работает.
   Джордж1
 
11 - 11.08.21 - 21:41
(5)спасибо, попробую
(9)без кучи окно - это с ТЗ на форме чтоли?
   HawkEye
 
12 - 11.08.21 - 22:24
(11) можно обработку с ТЗ на форме, можно документ сделать служебный, можно модально открыть...
но вообще сейчас пощелкал.. отображение в третьем справочнике меняется при изменении в первом, а описанный тобой эффект проявляется только если в третьем начать редактировать и перейти на первый, тогда да в третьем будет не родной потомок, но это все пока строка в редактировании...
   Джордж1
 
13 - 11.08.21 - 22:28
(12)"отображение в третьем справочнике меняется при изменении в первом," - а вы попробуйте вариант когда во втором справочнике нет элемента

"а описанный тобой эффект проявляется только если в третьем начать редактировать и перейти на первый," - у меня иногда вообще записи в 3-м справочнике получаются без владельца. Сэмулировать пока не смог

А вот с модальностью интересный вариант
   серый КТУЛХУ
 
14 - 11.08.21 - 23:48
(13): а ты попробуй в третьем в списке при пустом вротоп - добавить но не завершать редактирование строки - вернуться во второй и в нем добавить и сохранить - вернуться в третий и там закончить редактирование нового элемента с сохранением..
(с режимом "редактировать в списке")
   HawkEye
 
15 - 12.08.21 - 00:04
(13) на скорую руку набросал, пару раз протестил, вроде норм.. если во втором пусто, то третье закрывается, если во втором есть чё, то по новый открывается...

во втором пишешь:
Процедура ПриВыбореВладельца(вхЭлемент)   
   ОткрытьФорму("Справочник.Спр3", вхЭлемент);
КонецПроцедуры    


в третьем пишешь:
Перем НужнаПроверка;

Процедура ПриПовторномОткрытии()   
    НужнаПроверка = 1;
КонецПроцедуры 

Процедура ПриОткрытии()   
    НужнаПроверка = 0;
КонецПроцедуры  

Функция ПроверкаВладельца()
    Если НужнаПроверка = 1 Тогда
        Если форма.параметр <> ИспользоватьВладельца().Владелец Тогда  
            Спр = СоздатьОбъект("Справочник.Спр2");
            Спр.ИспользоватьВладельца(форма.параметр);
            Если Спр.ВыбратьЭлементы(1) = 0 Тогда
                Форма.Закрыть(); 
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    Возврат "";    
КонецФункции
 

и на форму третьего кидаешь функцию ПроверкаВладельца()
   Mikeware
 
16 - 12.08.21 - 08:07
(11) зачем с ТЗ - можно и с табличным полем. точнее, с двумя (для спецификации и нормы расхода).
можно дерево сделать, корень- номенклатура, 1-й уровень спецификации, 2-й - нормы.
   Джордж1
 
17 - 12.08.21 - 08:16
(16)нет в 7-ке табличного поля
   Андрей_Андреич
 
18 - 12.08.21 - 08:25
(17) Тут у каждого своя семерка
   Mikeware
 
19 - 12.08.21 - 08:28
(16) у нормальных семерочников - есть.
   ADirks
 
20 - 12.08.21 - 08:30
Лучше таки свою форму слепить. Пожалей бедных юзеров.  С этими подчиненными формами вынос мозга сплошной.
   HawkEye
 
21 - 12.08.21 - 08:38
(17) в 1срр есть..
   tgu82
 
22 - 12.08.21 - 08:40
(0) Если нет Спецификации у товара закрыть справочник норм. Создал спецификацию и тогда нормы появились на экране.
С нормами понятно - они нужны и могут быть периодическими, но зачем куча спецификаций на один и тот же товар - думаю это лишнее.
   Mikeware
 
23 - 12.08.21 - 08:44
(22) затем, что нормы расхода - состав спецификации. спецификация утверждается на определенный период.
   tgu82
 
24 - 12.08.21 - 08:49
(23) Где как. Норсы расхода могут быть периодическими как в ПУБ 7.7
   Mikeware
 
25 - 12.08.21 - 08:51
(24) это чрезжопица.
в нормальных организациях утверждают/переутверждают рецептуру (по сути - документ)
   Джордж1
 
26 - 12.08.21 - 08:55
(22)чем куча спецификаций на один и тот же товар - это не товар, это продукция - кулинария/выпечка. Но мысли сделать 1 товар = 1 спецификация есть
(25)в моем случае ненормальная
   Джордж1
 
27 - 12.08.21 - 09:02
(24)Учитывая как реализовано хранение периодических сведений в 7-ке - лучше не надо
   Джордж1
 
28 - 12.08.21 - 09:03
А может кто-то помнит

Был же в 7-ке вариант "эмуляции" регистров сведений на регистрах 7-ке. Без ресурсов что ли. Не могу вспомнить
   Mikeware
 
29 - 12.08.21 - 09:04
(26) у тебя утверждают "изменения"?
вы и меню, небось, один раз пишете, на 01 января, а потом изменения - " с 01.03 в супе грибном п.1.1 грибы заменить на соленые огурцы, цену уменьшить на 7 копеек","в каше рисовой рис заменить на гречку из расчета  1:1.2" ? и вывешиваете рядом с меню список изменений, да? посетитель заказывает по меню салат, грибной супчик и кашу рисовую с котлетой, а "в связи с изменениями, внесенными  приказами 1, 7, 12, 18, и 26" получает яичницу, рассольник и гречку с рыбой...
   Mikeware
 
30 - 12.08.21 - 09:05
(28) не надо. сделай на справочниках, и прямых запросах
 
 
   Джордж1
 
31 - 12.08.21 - 09:06
(29)да ничего нет, даже цены толком не отслеживают. Каждый повар по своей спецификации работает.
Вот вчера выяснилось что в голубцы ленивые идет 800 гр. мяса на кг. готового продукта. Как правильно никто не знает
   Mikeware
 
32 - 12.08.21 - 09:08
(31) весело... в одной ленивой конторе ленивый повар лениво делал ленивые голубцы...
   Mikeware
 
33 - 12.08.21 - 09:14
(31) сейчас нет ничего типа советского "сборника рецептур блюд дл япредприятий общественного питания на предприятиях и в учебных заведениях"?  там же все описывалось, стандартно, вплоть до замен...
я умудрился в свое время даже экзамены сдать нахаляву по ней, хотя и не учился...
   Злопчинский
 
34 - 12.08.21 - 09:16
в одной ленивой конторе ленивый повар лениво ленился делать ленивые голубцы...
   Андрей_Андреич
 
35 - 12.08.21 - 09:25
У меня спецификация это документ. И их действительно несколько на каждую продукцию потому что нормы меняются, комплектующие могут меняться. Регистр делать не стал, как и периодику - создал свою табличку и читаю прямым запросом.
Ах да - еще документ доп.спецификация. Используют когда нормы править не надо, комплектующих нет - надо заменить разово.
   Джордж1
 
36 - 12.08.21 - 15:35
В общем нашел вариант сделать проще

Делаем глобальную переменную ТекЭелементСпр2

На форме справочника 2 вешаем на форму невидимую функцию Обработка()

Функция Обработка()
   ТекЭлементСпр2 = ТекущийЭлемент();
КонецФункции

Ну и в справочнике 3 проста проверочка при вводе строки

Процедура ПриВводеСтроки()
    Если ИспользоватьВладельца()<>ТекЭлементСпр2 Тогда
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры
   HawkEye
 
37 - 12.08.21 - 15:38
(36) глобальные переменные - это пошло )))
   Джордж1
 
38 - 12.08.21 - 15:39
(37)Ага, в этой конфе это первая глобальная переменная получилась
   acanta
 
39 - 12.08.21 - 22:10
(37) в начале 7ки нормально было глобальная переменная, содержащая тз со всеми спецификациями и нормами расхода для выбора вместо ТМЦ как формы списка с отбором по типу продукция.
   acanta
 
40 - 12.08.21 - 22:15
Тз заполнялась при начале работы системы и по кнопке обновить в справочнике. Теоретически, архитектура при такой работе принципиально не имеет значения.
   Джордж1
 
41 - 12.08.21 - 22:34
(40)так это надо обработчики ТЗ на форме писать + работать с ТЗ не так удобно как со справчоником
   acanta
 
42 - 12.08.21 - 22:37
(41) если ТЗ на форме выбора одна, то всем все удобно..
   HawkEye
 
43 - 13.08.21 - 00:45
(39) глобальные переменные являющиеся аналогами константы - это одно и использовались они не только в начале 7-ки, но и сейчас.... а глобальные переменные как переменные, даже в начале 7-ки не использовались...
   HawkEye
 
44 - 13.08.21 - 00:45
(41) сделай документ ))
   Злопчинский
 
45 - 13.08.21 - 00:50
(43) ну... не совсем...
в 77 глРасшифровка - самая что ни на есть глобальная...
ну и целый блок глобальных переменных для работы с МФ
хотя может я чего и не понял


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.