7.7 Не выходит

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Archivar, 18 янв 2014.

  1. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    а если ее нет, то тупо создать?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Разумеется. Это предопределенная процедура. Может быть, а может и нет
    Archivar нравится это.
  3. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура ПриОткрытии()
    Форма.Категории.Доступность(1);
    КонецПроцедуры
    Так? если так то не работает(
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) Слой у вас один или несколько?
    2) Чтобы ЗАКРЫТЬ доступ ставьте значение 0
    3) Где проверка пользователя, которому разрешено или запрещено изменение реквизита?
    Archivar нравится это.
  5. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    1) Один
    2) мне надо 1 - т.к. я наоборот открываю для категории - кассир
    3)
    Код:
    Процедура ПриОткрытии()
        Если Кассир=ИмяПользователя(1) Тогда
            Форма.Категории.Доступность(1);
        КонецЕсли;
    КонецПроцедуры
    как то так?
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1)понятно
    2) Позволю себе спросить - а где вы его закрываете? В Свойствах реквизита формы?
    3) СокрЛП(ИмяПользователя())="Кассир"
    Archivar нравится это.
  7. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    2) так я же его не закрываю, у меня две группы пользователей кассир и бух, так вот в справочнике - номенклатура при редактировании строки, там есть реквизит - категория, т.к. кассиру все права давать нельзя, мне надо разрешить редактирование только его одно реквизита.
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну так проверяйте пользователя и закрывайте доступ КО ВСЕМ ОСТАЛЬНЫМ реквизитам
    Archivar нравится это.
  9. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура ПриОткрытии()
        Если СокрЛП(ИмяПользователя())="Кассир" Тогда
            Форма.Категории.Доступность(1);
        КонецЕсли;
    КонецПроцедуры
    Не работает
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Уффф... Т.е. у кассира нет доступа к реквизиту?
    Archivar нравится это.
  11. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Две категории прав: бух и кассир. Бух имеет все права. Кассир только просмотр.
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну так, насколько я помню, у кассира должны быть не доступны все прочие реквизиты кроме категории.
    А вы манипулируете только с категорией. Поправьте меня если я ошибаюсь
    Archivar нравится это.
  13. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    Все верно. У него вообще все кроме просмотра запрещено. И вот Этой процедуррой я и хочу разрешить редактирование реквизита категории.
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если у вас В ПРАВАХ конфигурации запрещено - бесполезно. Программно не откроете. Только давать в конфигурации права на редактирование объекта и закрывать доступ к реквизитам программно.
  15. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    http://files.mail.ru/F6802D8BB92A44999B45DEDD01A1B45B
    Код:
    Процедура ВводНового()
        ЕдИзм=ВосстановитьЗначение("НоменклатураЕдИзм");
    КонецПроцедуры
    
    Процедура ПриВыбореЕдиницыИзмерения()
        Если ПустаяСтрока(ЕдИзм)=0 Тогда
            СохранитьЗначение("НоменклатураЕдИзм",ЕдИзм);
        Иначе
            ЕдИзм=ВосстановитьЗначение("НоменклатураЕдИзм");
        КонецЕсли;
    КонецПроцедуры   
    Процедура ПриВыбореСтраны()
        Если Страна.выбран()=1 Тогда
            КодСтраны=Страна.КодСтраны;
        КонецЕсли;
        КонецПроцедуры
    
    
    //****************************************************************************** 
    //Процедура ПриОткрытии()
    //    Если СокрЛП(ИмяПользователя())="Кассир" Тогда
    //        Форма.Категории.Доступность(1);
    //    КонецЕсли;
    //КонецПроцедуры
    //******************************************************************************
    //процедуры для работы с ШК
    Процедура ОбновитьТабШК()  
        ТабШК.УдалитьСтроки();
        СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
        СпрШк.ИспользоватьВладельца(ТекущийЭлемент());
        СпрШк.ВыбратьЭлементы();
        Пока СпрШк.ПолучитьЭлемент()=1 Цикл
            ТабШК.НоваяСтрока();
            ТабШК.ШК=СпрШк.ШК;
            ТабШК.СсылкаШК=СпрШк.ТекущийЭлемент();
        КонецЦикла;   
    КонецПроцедуры   
    //**************************************
    Функция КонтрольныйСимволEAN13(ШтрКод) Экспорт
        Четн = 0;
        Нечетн = 0;
        КолвоИтераций = 6;
        Для Индекс = 1 По КолвоИтераций Цикл
            Четн = Четн + Сред(ШтрКод, 2 * Индекс, 1);
            Нечетн = Нечетн + Сред(ШтрКод, 2 * Индекс - 1, 1);
        КонецЦикла;
        Четн = Четн * 3;
        КонтЦифра = 10 - (Четн + Нечетн) % 10;
        Возврат ?(КонтЦифра = 10, "0", Строка(КонтЦифра));
    КонецФункции // КонтрольныйСимволEAN13()
    //**************************************
    Функция ПроверкаУникальностиШК(ПеремШК)               
        СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
        Если СпрШк.НайтиПоРеквизиту("ШК",ПеремШК,1)=1 Тогда
            Возврат 0;
        Иначе
            Возврат 1;
        КонецЕсли;   
    КонецФункции
    //**************************************
    Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
       
        Если ( Источник ="BarCodeScaner" ) И ( Событие = "BarCodeValue" ) Тогда
            Сканер.EventNumber=Число(Данные);        Сканер.DeleteEvent();
            //Если ШК новый то добавим его
            Если ПроверкаУникальностиШК(Данные)=1 Тогда
                Если ТекущийЭлемент().Выбран()=0 Тогда
                    Предупреждение("Необходимо записать элемент справочника товаров!",3);
                    Сканер.DataEventEnabled = 1;
                    СтатусВозврата(0);
                    Возврат;
                КонецЕсли;
                Если Вопрос("Добавить новый штрих-код?",4,0)=6 Тогда 
                    СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
                    СпрШк.ИспользоватьВладельца(ТекущийЭлемент());
                    СпрШк.Новый();
                    СпрШк.ШК=СокрЛП(Данные);
                    СпрШк.Записать();
                    ОбновитьТабШК();   
                КонецЕсли;   
            Иначе
                Сообщить("Штрих-код не уникален.");
            КонецЕсли;   
            Сканер.DataEventEnabled = 1;
        КонецЕсли;
       
    КонецПроцедуры // ОбработкаВнешнегоСобытия(); 
    //**************************************
    Процедура ДобавитьШК()
        Перем НовШК;    
        Если ТекущийЭлемент().Выбран()=0 Тогда
            Предупреждение("Необходимо записать элемент справочника товаров!",3);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;   
        Если Вопрос("Добавить новый штрих-код?",4,0)=6 Тогда 
            Если ВвестиСтроку(НовШК,"Введите новый штрих-код...",20,0,0)=1 Тогда
                СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
                СпрШк.ИспользоватьВладельца(ТекущийЭлемент());
                СпрШк.Новый();
                СпрШк.ШК=СокрЛП(НовШК);
                Если ПроверкаУникальностиШК(СокрЛП(НовШК))=1 Тогда
                    СпрШк.Записать();
                Иначе
                    Сообщить("Штрих-код не уникален.");
                КонецЕсли;   
                ОбновитьТабШК();
            КонецЕсли;   
        КонецЕсли;   
    КонецПроцедуры
    //**************************************
    Процедура УдалитьШК()
        Если ТекущийЭлемент().Выбран()=0 Тогда
            Предупреждение("Необходимо записать элемент справочника товаров!",3);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;      
        Если ПустоеЗначение(ТабШК)=1 Тогда
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;      
        Если Вопрос("Удалить штрих-код?",4,0)=6 Тогда 
            СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
            Если СпрШк.НайтиЭлемент(ТабШК.СсылкаШК)=1 Тогда
                СпрШк.Удалить(1);
            КонецЕсли;
            ОбновитьТабШК();
        КонецЕсли;   
    КонецПроцедуры
    //**************************************
    Процедура ИзменитьШК()              
        Перем НовШК;
        Если ТекущийЭлемент().Выбран()=0 Тогда
            Предупреждение("Необходимо записать элемент справочника товаров!",3);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;   
        Если ПустоеЗначение(ТабШК)=1 Тогда
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;      
        НовШК=ТабШК.ШК;
        Если ВвестиСтроку(НовШК,"Введите штрих-код...",20,0,0)=1 Тогда
            СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
            Если СпрШк.НайтиЭлемент(ТабШК.СсылкаШК)=1 Тогда
                СпрШк.ШК=СокрЛП(НовШК);
                Если ПроверкаУникальностиШК(СокрЛП(НовШК))=1 Тогда
                    СпрШк.Записать();
                Иначе
                    Сообщить("Штрих-код не уникален.");
                КонецЕсли;
            КонецЕсли;   
            ОбновитьТабШК();
        КонецЕсли;   
    КонецПроцедуры   
    //**************************************
    Процедура СгенерироватьШК()
        Если ТекущийЭлемент().Выбран()=0 Тогда
            Предупреждение("Необходимо записать элемент справочника товаров!",3);
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
        Если Вопрос("Сгенерировать новый штрих-код?",4,0)=6 Тогда 
            СпрШк=СоздатьОбъект("Справочник.ШтрихКода");
            Штрихкод = "23" + Прав("0000000000"+Код,10);
            Штрихкод=Штрихкод+КонтрольныйСимволEAN13(Штрихкод);
            СпрШк.ИспользоватьВладельца(ТекущийЭлемент());
            СпрШк.Новый();
            СпрШк.ШК=СокрЛП(Штрихкод);
            Если ПроверкаУникальностиШК(СокрЛП(Штрихкод))=1 Тогда
                СпрШк.Записать();
            Иначе
                Сообщить("Штрих-код уже сгенерирован.");
            КонецЕсли;
            ОбновитьТабШК();
        КонецЕсли;   
    КонецПроцедуры        
    //************************************** 
    Форма.Категории.Доступность(1);
    ТабШК.НоваяКолонка("ШК",,,,"Штрих-код");
    ТабШК.НоваяКолонка("СсылкаШК");
    ТабШК.ВидимостьКолонки("СсылкаШК",0);  
    ОбновитьТабШК();
    
    
    Из прав только чтение, как же Штрих код доступен?
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ШК похоже не является реквизитом справочника. Это просто подчиненный справочник, а на форме ВОЗМОЖНО есть реквизит, который отображается
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Без МДшника трудно сказать
  18. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    проблемка: Стал переносить данную вещь на такую же сборку, В справочнике - реквизит - категории заполняю, например ставлю цифру - 4. Он ее не сохраняет( плюс при формировании отчета выдает:
    Если (категории<>Ит.Субконто().категории) или (количество<=Ит.СКД("К")) Тогда
    {Отчет.Категории.Форма.Модуль(25)}: Поле агрегатного объекта не обнаружено (категории)

    (((
  19. TopicStarter Overlay
    Archivar
    Offline

    Archivar Опытный в 1С

    Регистрация:
    14 авг 2013
    Сообщения:
    319
    Симпатии:
    0
    Баллы:
    26
    сори, проблема решена,
  20. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    вы с правами разобрались?

Поделиться этой страницей