Имя: Пароль:
1C
1C 7.7
v7: БУ 4.5 Неверная ссылка в графе отбора
0 YurAnt
 
31.10.13
13:38
Доброго времени суток, господа-форумчане.
И продолжается война 8-щика на полях 7.7.
Проблема в следующем, Авансовый отчет: по тыку на "подотчетное лицо" (на момент когда я это увидел) выбирался Контрагент
http://savepic.su/3691788.png
Поставили задачу, что в данном поле выбирался Сотрудник (Спр.Сотрудники)
Изначально как показалось задача в 2 клика...
В сегменте
ОткрытьФорму("Справочник.Сотрудники.ФормаСписка","Авансовый отчет");
        ФлагСтандОбр=0;
        
    ИначеЕсли ИдентЭлемДиалога = "УчетРасходовДляНУ" Тогда
        Если ПустоеЗначение(КоррСчет)=0 Тогда
            СтрПр = "";
            Если (КоррСчет = СчетПоКоду("10.11"))
                ИЛИ (КоррСчет = СчетПоКоду("10.1"))
                ИЛИ (КоррСчет = СчетПоКоду("44.1"))
                ИЛИ (КоррСчет = СчетПоКоду("41.1"))
                ИЛИ (КоррСчет = СчетПоКоду("97.1"))
                ИЛИ
Правим Справочник.Сотрудники.ФормаСписка (это теперь уже, а было: Справочник.Контрагенты.ФормаСписка) + правим СвойстваРеквизита/ТипЗначения с Справочник.Контрагенты на Справочник.Сотрудники...
Однако хрена... http://savepic.su/3684622.png
После изменения СвойстваРеквизита Конфигуратор не дает сохранить конфу...
Весь код авансового отчета https://github.com/Yurant/1C/blob/master/v7.7%20Авансовый%20отчет

Не могу пока разобратсья в чем состоит проблема. Что есть "неверная ссылка в графе отбора" ?
Благодарен за любые советы...
Код процедуры выбора привел ниже:

Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр)
//предопределенная
Если ИдентЭлемДиалога = "КоррСчет" Тогда
    СтарКоррСчет = КоррСчет;
    СписокКорректныхПроводок = СоздатьОбъект("СписокЗначений");
    Если ТипОтчета = 2 Тогда
        Сч71 = Сч71_11;
    Иначе
        Сч71 = Сч71_2;
    КонецЕсли;
    СписокКорректныхПроводок.Установить("Счет", Сч71);
    СписокКорректныхПроводок.Установить("Корреспонденция", 0);
//кредитовый счет
    глЗначениеОтбора = СписокКорректныхПроводок;
ИначеЕсли ИдентЭлемДиалога = "ОсновноеСредство" Тогда
        Если (КоррСчет.Родитель(1)= СчетПоКоду("10")) Или (КоррСчет.Родитель(1)= СчетПоКоду("41"))  Тогда
            ОсновноеСредство.ВидыДляВыбора("МестаХранения");    
        Иначе
            ОсновноеСредство.ВидыДляВыбора("ОбъектыВнеоборотныхАктивов,ОсновныеСредства"+?(ДатаДок >= '01.01.2006',",НематериальныеАктивы",""));
        КонецЕсли;
                
    ИначеЕсли ИдентЭлемДиалога = "Сотрудник" Тогда
        ОткрытьФорму("Справочник.Сотрудники.ФормаСписка","Авансовый отчет");
        ФлагСтандОбр=0;
        
    ИначеЕсли ИдентЭлемДиалога = "УчетРасходовДляНУ" Тогда
        Если ПустоеЗначение(КоррСчет)=0 Тогда
            СтрПр = "";
            Если (КоррСчет = СчетПоКоду("10.11"))
                ИЛИ (КоррСчет = СчетПоКоду("10.1"))
                ИЛИ (КоррСчет = СчетПоКоду("44.1"))
                ИЛИ (КоррСчет = СчетПоКоду("41.1"))
                ИЛИ (КоррСчет = СчетПоКоду("97.1"))
                ИЛИ (Найти("60.1,60.2,60.3,60.11,60.22,71.1,76.5,76.6,76.55,76.66",Строка(СокрЛП(КоррСчет.Код))) <> 0) тогда
                    
                СтрПр = "Для выбранного счета затрат, значение реквизита
                        |""Вариант учета расходов в налоговом учете"""+РазделительСтрок
                        +"может быть только ""Не принимаются""";
                УчетРасходовДляНУ=Перечисление.ВариантыУчетаРасходовДляНУ.НеПринимаются;
                ФлагСтандОбр=0;    
            ИначеЕсли (КоррСчет = СчетПоКоду("10.12"))
                ИЛИ (КоррСчет = СчетПоКоду("10.2"))
                ИЛИ (КоррСчет = СчетПоКоду("10.3"))
                ИЛИ (КоррСчет = СчетПоКоду("10.13"))
                ИЛИ (КоррСчет = СчетПоКоду("44.2"))
                ИЛИ (КоррСчет = СчетПоКоду("41.2"))
                ИЛИ (КоррСчет = СчетПоКоду("41.3")) Тогда
                              
                СтрПр = "Для выбранного счета затрат, значение реквизита
                        |""Вариант учета расходов в налоговом учете"""+РазделительСтрок
                        +"может быть только ""Принимаются""";
                УчетРасходовДляНУ=Перечисление.ВариантыУчетаРасходовДляНУ.Принимаются;
                ФлагСтандОбр=0;    
            ИначеЕсли (КоррСчет = СчетПоКоду("97.2"))
                ИЛИ (КоррСчет = СчетПоКоду("97.4")) Тогда
                
                УчетРасходовДляНУ = ?(УчетРасходовДляНУ.ПорядковыйНомер() = 3,Перечисление.ВариантыУчетаРасходовДляНУ.Принимаются,
                                    Перечисление.ВариантыУчетаРасходовДляНУ.Распределяются);
                ФлагСтандОбр=0;    
            Иначе
                //УчетРасходовДляНУ = ?(УчетРасходовДляНУ.ПорядковыйНомер() = 3,Перечисление.ВариантыУчетаРасходовДляНУ.Принимаются,
                //                    Перечисление.ВариантыУчетаРасходовДляНУ.ЗначениеПоНомеру(УчетРасходовДляНУ.ПорядковыйНомер()+1));
                ФлагСтандОбр = 1;                        
            КонецЕсли;
            
            Если ПустоеЗначение(СтрПр)=0 тогда
                Предупреждение(СтрПр);    
            КонецЕсли;    
        Иначе    
            ФлагСтандОбр = 0;                        
        КонецЕсли;    
    
    КонецЕсли;
КонецПроцедуры //ПриНачалеВыбораЗначения
1 YurAnt
 
31.10.13
13:40
пока что - в глубокой отладке
2 YurAnt
 
31.10.13
13:58
кроме того... кхм, смущен тем, что не могу найти =/ форму документа...
то что мы видим слева (коф-р) и то что справа (режим предпр-я)
http://savepic.su/3711234.png
различаются.
Вероятно я чего-то недопонимаю... но откуда правится собственно форма такого типа?
это ведь не Управляемые формы когда можно в коде все сформировать...
в общем, как говаривал один персонаж: меня терзают смутные сомнения...
3 YurAnt
 
31.10.13
14:52
К вопросу о форме документа - возможно дело в слоях...(хотя и не факт)
Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
    Если ЗначениеЗакладки = 1 Тогда
    Форма.ИспользоватьСлой("Основной, Шапка",2);
    ПриУстановкеТипаОтчета();
    Иначе
    Форма.ИспользоватьСлой("Основной, Таблица",2);
    Форма.Валюта.Видимость(0);
    Форма.КурсВал.Видимость(0);
    Форма.РамкаВалюты.Видимость(0);
    КонецЕсли;
КонецПроцедуры

однако где они реактируются тоже не пойму...
копаю дальше.
4 YurAnt
 
31.10.13
14:56
кажется что-то есть :)
Как редактировать слои формы?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан