Имя: Пароль:
1C
 
ТИС 7.7 при подборе товара количество записывается в наименование Номенклатуры
,
0 ChMikle
 
18.05.16
16:48
при подборе товара через обработку "ввод количества" количество записывается в наименование Номенклатуры. Справочник "Номенклатура" закрыт для редактирования всем пользователям , в коде нигде нет процедур записи или чтения наименования номенклатуры. Происходит редко , но периодически
1 Builder
 
18.05.16
17:03
"закрыт для редактирования" - работает только для интерактивного редактирования.
"в коде нигде нет процедур.." - видимо все таки есть.
Отладчик в руки и смотреть.
2 ChMikle
 
18.05.16
17:08
вот модуль формы обработки , не могу найти

////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
//
Перем Номенклатура, Валюта, Коэффициент, ПарамЦена;
Перем ВиденФлагКомплектующие, ОтработалаПриИзмененииЦены;

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МОДУЛЯ
//
//******************************************************************************
// ПриИзмененииФлагаДобавитьКомплектующие()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//    
// Вызывается из формул диалога
// при изменении флага ДобавитьКомплектующие
//
// Описание:
//  ТекстОписания
//
Процедура ПриИзмененииФлагаДобавитьКомплектующие()
    
    Если ДобавлятьКомплектующие = 1 Тогда
        // В этом случае цены не задаются (они заданы для каждого комплектующего в отдельности)
        Форма.Цена.Доступность(0);
    Иначе
        Форма.Цена.Доступность(1);
    КонецЕсли;

КонецПроцедуры // ПриИзмененииФлагаДобавитьКомплектующие()

//******************************************************************************
// ОК()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Вызывается из формул элементов диалога:
//  кнопка "Ок"
//
// Описание:
//  Передаем в вызывавший обработку модуль результаты
//
Процедура ОК()
    
    Форма.Параметр.Установить("Количество"    , Количество);
    Форма.Параметр.Установить("Единица"        , Единица);
    Форма.Параметр.Установить("Цена"        , Цена);
    Форма.Параметр.Установить("ДобавлятьКомплектующие"        , ДобавлятьКомплектующие);
    Форма.Параметр.Установить("СтатусВозврата"    , 1);
    
КонецПроцедуры

//******************************************************************************
// ПриИзмененииЕдиницы()
//
// Параметры:
//  Нет
//
// Вызывается из формул элементов диалога
// Поле ввода единица
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  Пересчитывает цену при изменении единицы
Процедура ПриИзмененииЕдиницы()
    
    // сохраним старый коэффициент
    ВремКоэфф = Коэффициент;
    
    // заполним коэффициент из единицы
    Коэффициент = Единица.Коэффициент;
    Если ВремКоэфф <> 0 Тогда
        
        // цена была за другой коэффициент. Пересчитываем
        Цена = Цена * Коэффициент / ВремКоэфф;        
    КонецЕсли;
        
КонецПроцедуры // ПриИзмененииЕдиницы()

//******************************************************************************
// ПриИзмененииЦены()
//
// Параметры:
//  Нет
//
// Вызывается из формул элементов диалога
// Поле ввода цена
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//  При нажатии на кнопку Enter в поле Цена выполняет действия,
//  как по кнопке ОК, и закрывает форму
//       ПриИзмененииЦены();Сумма=Количество*Цена
Процедура ПриИзмененииЦены()
    Если (Цена <> 0) И (ВиденФлагКомплектующие = 0) Тогда
        // Количество и цену в возвращаемый параметр прописываем при закрытии
        ОтработалаПриИзмененииЦены = 1;
        Форма.Закрыть();
    КонецЕсли;
КонецПроцедуры // ПриИзмененииЦены()
////////////////////////////////////////////////////////////////////////////////
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
// *****************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()
    
    Если ТипЗначенияСтр(Форма.Параметр) <> "СписокЗначений" Тогда
        Предупреждение("Обработка вызывается только из формы подбора!", 60);
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
    
    Номенклатура = Форма.Параметр.Получить("Номенклатура");
    Количество   = Форма.Параметр.Получить("Количество");
    Единица         = Форма.Параметр.Получить("Единица");
    ПарамЦена     = Форма.Параметр.Получить("Цена");
    Валюта          = Форма.Параметр.Получить("Валюта");
    Коэффициент  = Единица.Коэффициент; // заполним коэффициент из единицы
    
    Если ТипЗначенияСтр(ПарамЦена) = "СписокЗначений" Тогда
        // запрещаем редактировать цену. только выбор из спсика
        Форма.Цена.Редактирование(0);
        Если ПарамЦена.РазмерСписка() > 0 Тогда
            Цена = ПарамЦена.ПолучитьЗначение(1);
        КонецЕсли;
    Иначе
        Цена = ПарамЦена;
    КонецЕсли;
    
    Если ПустоеЗначение(глКомплектуется(Номенклатура)) = 0 Тогда
        ВиденФлагКомплектующие    = 1;
        
        // Работает с комплектом
        ДобавлятьКомплектующие =  ВосстановитьЗначение("ДобавлятьКомплектующие");
        Если ПустоеЗначение(ДобавлятьКомплектующие) = 1  Тогда
            ДобавлятьКомплектующие = 0;
        Иначе
            ДобавлятьКомплектующие = 1;
            
            // В этом случае цены не задаются (они заданы для каждого комплектующего в отдельности)
            Форма.Цена.Доступность(0);
        КонецЕсли;
        
    Иначе // Обычный товар или услуга
        ВиденФлагКомплектующие    = 0;
        Форма.ДобавлятьКомплектующие.Видимость(0);
    КонецЕсли;
    
    Форма.Заголовок("Количество и цена """ + Номенклатура+ """");
    Форма.Параметр.Установить("СтатусВозврата"    , 0);    
    
    Если (глПолучитьПолномочие("РазрешитьРедактированиеЦенВдокументах") = 0)
       и (ТипЗначенияСтр(ПарамЦена) <> "СписокЗначений") Тогда
        Форма.Цена.Доступность(0);
    КонецЕсли;
    
    Если ТипЗначенияСтр(ПарамЦена) = "СписокЗначений" Тогда
        Форма.Единица.Доступность(0);
    КонецЕсли;
    
    Активизировать("Количество");

КонецПроцедуры // ПриОткрытии()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр)
    
    Перем Параметр;
    
    Если ИдентЭлемДиалога = "Цена" Тогда
        Если ТипЗначенияСтр(ПарамЦена) = "СписокЗначений" Тогда
            ФлагСтандОбр = 0;
            ПарамЦена.ВыбратьЗначение(Цена,,, 60,2);
        КонецЕсли;
    ИначеЕсли ИдентЭлемДиалога = "Единица" Тогда
        ФлагСтандОбр = 0;
        Параметр = Номенклатура;
        ОткрытьФорму("Справочник.Единицы", Параметр);
        
        Если Форма.МодальныйРежим() = 1 Тогда
            Единица = Параметр;
            ПриИзмененииЕдиницы();
        КонецЕсли;
    КонецЕсли;                            
    
КонецПроцедуры // ПриНачалеВыбораЗначения()

//******************************************************************************
// Предопределенная процедура.
//
Процедура ПриЗакрытии()
    
    Если Форма.АктивныйЭлемент() = "кнОтмена" Тогда  // Нажата кнопка "Отмена"
        Форма.Параметр.Установить("СтатусВозврата"    , 0);
    ИначеЕсли ОтработалаПриИзмененииЦены = 1 Тогда // Прописываем возвращаемые количество и цену
        ОК();
    КонецЕсли;
    Если ПустоеЗначение(глКомплектуется(Номенклатура)) = 0 Тогда
        // Работаем с комплектом
        СохранитьЗначение("ДобавлятьКомплектующие", ДобавлятьКомплектующие);
    КонецЕсли;
    
КонецПроцедуры // ПриЗакрытии()

////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
//
ОтработалаПриИзмененииЦены = 0;
3 lera01
 
18.05.16
17:17
Уже не помню, как в 7-ке, возможно, там в списке справочника есть какой-то переключатель на редактирование в списке и при вводе количества такое редактирование и происходит?
4 ChMikle
 
18.05.16
17:19
так в форме обработки ввода количества и цены , нет полей ввода номенклатуры или поиска . вводят в поле количество 3, нажимают Enter, подтверждая ввод и меняется наименование , полное наименование элемента остается нетронутым
5 пипец
 
18.05.16
17:20
судя по всему он у тя пишет в таблицу значений (подбора)
ЗЫ если автор нам не врет (с) ВСВ
6 пипец
 
18.05.16
17:20
(4) хде меняется ? в обработке подбора или в документе ? )
7 ChMikle
 
18.05.16
17:26
(6) в обработке подбора, еще до попадания в таблицу значения
8 пипец
 
18.05.16
17:30
(7) это и есть отдельная обработка подбора !!!
Либо обработка !! отдельная либо форма списка справочника для подбора ... используется и все равно ТАМ таблица значений
9 пипец
 
18.05.16
17:31
принтскрин !
10 пипец
 
18.05.16
17:31
где ?
11 ChMikle
 
18.05.16
17:34
(10) принтскрин не сделаю, потому что это происходит не постоянно , собственно, поэтому и в отладчике не могу проверить где происходит запись наименования. из формы подбора вызывается обработка ввода данных : количества и цен , туда передают через список значений форма.параметр и обратно получает введенные данные. Но меняется наименование когда подтверждают ввов количества
12 HawkEye
 
18.05.16
18:02
(0) перевожу..
в документе нажимаешь подбор - открывается форма справочника для подбора, у нее внизу ТЗ в которую осуществляется подбор, потом нажимается ОК и все что подобрано переносится в документ...

в момент помещения товара в ТЗ, после того, как вводится кол-во, в колонке "Товара" ТЗ значение меняется на введенное кол-во....


так что-ли?
13 ChMikle
 
19.05.16
09:40
(12) нет , меняется наименование не в т.з., а в справочнике номенклатура у элемента , который выбирают и для которого вводят количество и цену
14 Масянька
 
19.05.16
09:42
(13) D процедуре
Процедура ОК()
    
    Форма.Параметр.Установить("Количество"    , Количество);
    Форма.Параметр.Установить("Единица"        , Единица);
    Форма.Параметр.Установить("Цена"        , Цена);
    Форма.Параметр.Установить("ДобавлятьКомплектующие"        , ДобавлятьКомплектующие);
    Форма.Параметр.Установить("СтатусВозврата"    , 1);
    
КонецПроцедуры

Добавь первую строчку "    Форма.Параметр.Установить("Номенклатура"    , Номенклатура);"
15 пипец
 
19.05.16
11:21
Оо "посыпал холову пеплом" все таки хотелось посмотреть принтскрин про  
-  нет , меняется наименование не в т.з., а в справочнике номенклатура у элемента ,(цопирайт)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший