Имя: Пароль:
1C
1С v8
AddInNative : Неправильное значение параметра "ФИО". Недопустимый символ '.'..
,
0 ma8883
 
13.08.14
22:22
конфиг ЗУП 2.5.83.1

при запуске выпадает ошибка внизу
AddInNative : Неправильное значение параметра "ФИО". Недопустимый символ '.'..

Проверил всех сотрудников, нет ни у кого никаких символов, только буквы.
как её убрать?
1 HeroShima
 
13.08.14
22:23
Где-то тут уже было.
2 Фокусник
 
13.08.14
22:25
(0) "Проверил всех сотрудников, нет ни у кого никаких символов, только буквы. "

Как, визуально проверил, или?
3 ma8883
 
14.08.14
05:29
визуально, как еще можно?
4 mehfk
 
14.08.14
08:09
Просклоняй весь справочник в цикле - на котором сломается, тот "плохой".
5 ma8883
 
14.08.14
16:28
(4) Не дадите ссылку "Как это сделать"?
6 IBTM
 
14.08.14
16:46
(5) в типовой есть куча мест где используется "общая" функция склонения фио
7 Ярус
 
14.08.14
16:48
отладчиком прогони, точку останова по ошибке попробуй
8 ma8883
 
14.08.14
22:20
(7) Запустил в конфигуратор отладчик, вот что выдал:

Ошибка времени выполнения:
{ОбщийМодуль.УниверсальныеМеханизмы.Модуль(188)}: Ошибка при вызове метода контекста (Просклонять) в модуле ОбщийМодуль.УниверсальныеМеханизмы.Модуль. строка 188.

и стоит стрелка на строке:
Иначе
Результат = Компонента.Просклонять(Результат, Падеж) + " ";

Что можно поправить, чтобы при очередном обновлении не появились другие ошибки и ушла эта? Конфиг обычный не дописанный.
9 ДенисЧ
 
14.08.14
22:21
(8) включи в отладчике остановку по ошибке. и увидишь.
10 ma8883
 
14.08.14
22:22
вот полностью:


Процедура ПометитьНаУдалениеДополнительнуюИнформациюОбъекта(ОбъектВладелец, Отказ, ШапкаОшибки) Экспорт
    
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("Объект", ОбъектВладелец);
    
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ХранилищеДополнительнойИнформации.Ссылка,
    |    ХранилищеДополнительнойИнформации.Объект
    |ИЗ
    |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
    |ГДЕ
    |    ХранилищеДополнительнойИнформации.Объект = &Объект
    |    И (НЕ ХранилищеДополнительнойИнформации.ПометкаУдаления)";
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Попытка
            Выборка.Ссылка.ПолучитьОбъект().УстановитьПометкуУдаления(Истина);
        Исключение
            ОбщегоНазначенияЗК.СообщитьОбОшибке(ОписаниеОшибки(), Отказ, ШапкаОшибки);
            Возврат;
        КонецПопытки;
    КонецЦикла;
    
КонецПроцедуры


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА ВНЕШНИХ КОМПОНЕНТ
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

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

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

// Функция склоняет переданую фразу
// Параметры:
//  Фраза (обязательный), тип строка
//   Параметр должен содержать фразу. Каждое слово фразы будет просклонено отдельно
//
//  Падеж (обязательный), тип число
//   Падеж, в который необходимо поставить ФИО.
//   1 - Именительный
//   2 - Родительный
//   3 - Дательный
//   4 - Винительный
//   5 - Творительный
//   6 - Предложный
//
Функция Просклонять(Компонента, Знач Фраза = "", Падеж = 1, Пол = Неопределено, Результат) Экспорт
    
    Если Компонента = Неопределено Тогда
        Возврат Ложь;
    КонецЕсли;
    
    Результат = "";
    
    МассивСтрок = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Фраза, " ");
    
    // Выделим первые 3 слова, так как компонента не умеет склонять фразу большую 3х символов
    НомерНесклоняемогоСимвола = 4;
    Для Номер = 1 По Мин(МассивСтрок.Количество(), 3) Цикл
        Если Не ФИОНаписаноВерно(МассивСтрок[Номер-1], Истина) Тогда
            НомерНесклоняемогоСимвола = Номер;
            Прервать;
        КонецЕсли;

        Результат = Результат + ?(Номер > 1, " ", "") + МассивСтрок[Номер-1];
    КонецЦикла;
    
    Если ПустаяСтрока(Результат) Тогда
        Результат = Фраза;
        Возврат Ложь;
    КонецЕсли;
    
    Попытка
        Если Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда
            Результат = Компонента.Просклонять(Результат, Падеж, 1) + " ";
            
        ИначеЕсли Пол = Перечисления.ПолФизическихЛиц.Женский Тогда
            Результат = Компонента.Просклонять(Результат, Падеж, 2) + " ";
            
        Иначе
            Результат = Компонента.Просклонять(Результат, Падеж) + " ";
            
        КонецЕсли;
        
    Исключение
        Результат = Фраза;
        Возврат Ложь;
        
    КонецПопытки;
    
    // Остальные символы добавим без склонения
    Для Номер = НомерНесклоняемогоСимвола По МассивСтрок.Количество() Цикл
        Результат = Результат + " " + МассивСтрок[Номер-1];
    КонецЦикла;
    
    Результат = СокрЛП(Результат);
    
    Возврат Истина;
    
КонецФункции // Просклонять()

// Функция склоняет Фамилию, Имя и Отчество
// Параметры:
//  Фамилия, Имя, Отчество (обязательный), тип строка
//   Параметры должены содержать фамилию, имя и отчество в именительном падеже единственного числа.
//   Строка должна состоять только из букв русского алфавита, пробелов и дефисов.
//   Внутри фамилии, имени, отчества пробелов быть не должно.
//   Двойные и тройные имена и фамилии должны писаться через дефис. Имена и отчества должны быть полные
//
//  Падеж (обязательный), тип число
//   Падеж, в который необходимо поставить ФИО.
//   1 - Именительный
//   2 - Родительный
//   3 - Дательный
//   4 - Винительный
//   5 - Творительный
//   6 - Предложный
//
//  Пол (необязательный), тип ПеречислениеСсылка.ПолФизическихЛиц
//   Данный параметр предназначен для разрешения возможных неоднозначностей, например, имя Карен Акопян
//   может принадлежать и мужчине, и женщине, и в зависимости от этого склоняться или не склоняться.
//   В остальных случаях рекомендуется опускать этот параметр.
//
Функция ПросклонятьФамилиюИмяОтчество(Компонента, Знач Фамилия = "", Знач Имя = "", Знач Отчество = "", Падеж = 1, Пол = Неопределено, Результат = "", СообщениеОбОшибке = "") Экспорт
    
    Если Компонента = Неопределено Тогда
        Возврат Ложь;
    КонецЕсли;
    
    ФамилияНовая    = Фамилия;
    ИмяНовое        = Имя;
    ОтчествоНовое    = Отчество;
    
    Результат = Фамилия + " " + Имя + " " + Отчество;
    
    // Двойные и тройные ФИО, если указаны с пробелами, исправим на использование дефиса
    НужноИсправитьФамилию    = Найти(Фамилия, " ") > 0;
    НужноИсправитьИмя        = Найти(Имя, " ") > 0;
    НужноИсправитьОтчество    = Найти(Отчество, " ") > 0;
    Если НужноИсправитьФамилию Тогда
        ФамилияНовая = СтрЗаменить(Фамилия, " ", "-");
    КонецЕсли;
    Если НужноИсправитьИмя Тогда
        ИмяНовое = СтрЗаменить(Имя, " ", "-");
    КонецЕсли;
    Если НужноИсправитьОтчество Тогда
        ОтчествоНовое = СтрЗаменить(Отчество, " ", "-");
    КонецЕсли;
    
    ФИО = ФамилияНовая + " " + ИмяНовое + " " + ОтчествоНовое;
    
    Если ПустаяСтрока(ФИО) Тогда
        СообщениеОбОшибке = "Строка с ФИО не должна быть пустая.";
        Возврат Ложь;
    КонецЕсли;
    
    Если Не ФИОНаписаноВерно(ФИО, Истина) Тогда
        СообщениеОбОшибке = "Строка с ФИО должна состоять только из букв русского алфавита, пробелов и дефисов.";
        Возврат Ложь;
    КонецЕсли;
    
    Если СтрЧислоВхождений(ФИО, " ") > 3 Тогда
        СообщениеОбОшибке = "Фамилия, имя и отчество должны разделяться пробелами. Внутри фамилии, имени, отчества пробелов быть не должно.";
        Возврат Ложь;
    КонецЕсли;
    
    Попытка
        Если Пол = Перечисления.ПолФизическихЛиц.Мужской Тогда
            Результат = Компонента.Просклонять(ФИО, Падеж, 1);
                
        ИначеЕсли Пол = Перечисления.ПолФизическихЛиц.Женский Тогда
            Результат = Компонента.Просклонять(ФИО, Падеж, 2);
                
        Иначе
            Результат = Компонента.Просклонять(ФИО, Падеж);
                
        КонецЕсли;
        
        // Вернем пробелы в составные ФИО обратно, если до этого их изменили
        Если НужноИсправитьФамилию ИЛИ НужноИсправитьИмя ИЛИ НужноИсправитьОтчество Тогда
            
            МассивФИО = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Результат, " ");
            
            Результат = "";
            
            ИндексФИО = 0;
            
            Если Не ПустаяСтрока(Фамилия) Тогда
                ФамилияНовая = МассивФИО[ИндексФИО];
                ИндексФИО = ИндексФИО + 1;
                
                Если НужноИсправитьФамилию Тогда
                    
                    Если СтрЧислоВхождений(Фамилия, "-") > 0 Тогда
                        
                        МассивФамилия = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(ФамилияНовая, "-");
                        ФамилияНовая = МассивФамилия[0];
                        ИндексФамилия = 1;
                        
                        Пока Истина Цикл
                            
                            ПозПробел = Найти(Фамилия, " ");
                            ПозДефис  = Найти(Фамилия, "-");
                            
                            Если ПозПробел = ПозДефис Тогда
                                Прервать;
                            КонецЕсли;
                            
                            Если (ПозДефис = 0) ИЛИ (ПозПробел > 0) И (ПозПробел < ПозДефис) Тогда
                                ФамилияНовая = ФамилияНовая + " ";
                                Фамилия = Сред(Фамилия, ПозПробел+1);
                                
                            ИначеЕсли (ПозПробел = 0) ИЛИ (ПозДефис > 0) И (ПозДефис < ПозПробел) Тогда
                                ФамилияНовая = ФамилияНовая + "-";
                                Фамилия = Сред(Фамилия, ПозДефис+1);
                                
                            КонецЕсли;
                            
                            ФамилияНовая = ФамилияНовая + МассивФамилия[ИндексФамилия];
                            ИндексФамилия = ИндексФамилия + 1;
                            
                        КонецЦикла;
                        
                    Иначе
                        ФамилияНовая = СтрЗаменить(ФамилияНовая, "-", " ");
                        
                    КонецЕсли;
                    
                КонецЕсли;
                
                Результат = Результат + ФамилияНовая;
                
            КонецЕсли;
            
            Если Не ПустаяСтрока(Имя) Тогда
                ИмяНовое = МассивФИО[ИндексФИО];
                ИндексФИО = ИндексФИО + 1;
                
                Если НужноИсправитьИмя Тогда
                    
                    Если СтрЧислоВхождений(Имя, "-") > 0 Тогда
                        
                        МассивИмя = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(ИмяНовое, "-");
                        ИмяНовое = МассивИмя[0];
                        ИндексИмя = 1;
                        
                        Пока Истина Цикл
                            
                            ПозПробел = Найти(Имя, " ");
                            ПозДефис  = Найти(Имя, "-");
                            
                            Если ПозПробел = ПозДефис Тогда
                                Прервать;
                            КонецЕсли;
                            
                            Если (ПозДефис = 0) ИЛИ (ПозПробел > 0) И (ПозПробел < ПозДефис) Тогда
                                ИмяНовое = ИмяНовое + " ";
                                Имя = Сред(Имя, ПозПробел+1);
                                
                            ИначеЕсли (ПозПробел = 0) ИЛИ (ПозДефис > 0) И (ПозДефис < ПозПробел) Тогда
                                ИмяНовое = ИмяНовое + "-";
                                Имя = Сред(Имя, ПозДефис+1);
                                
                            КонецЕсли;
                            
                            ИмяНовое = ИмяНовое + МассивИмя[ИндексИмя];
                            ИндексИмя = ИндексИмя + 1;
                            
                        КонецЦикла;
                        
                    Иначе
                        ИмяНовое = СтрЗаменить(ИмяНовое, "-", " ");
                        
                    КонецЕсли;
                    
                КонецЕсли;
                
                Результат = СокрЛП(Результат + " " + ИмяНовое);
                
            КонецЕсли;
            
            Если Не ПустаяСтрока(Отчество) Тогда
                ОтчествоНовое = МассивФИО[ИндексФИО];
                ИндексФИО = ИндексФИО + 1;
                
                Если НужноИсправитьОтчество Тогда
                    
                    Если СтрЧислоВхождений(Отчество, "-") > 0 Тогда
                        
                        МассивОтчество = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(ОтчествоНовое, "-");
                        ОтчествоНовое = МассивОтчество[0];
                        ИндексОтчество = 1;
                        
                        Пока Истина Цикл
                            
                            ПозПробел = Найти(Отчество, " ");
                            ПозДефис  = Найти(Отчество, "-");
                            
                            Если ПозПробел = ПозДефис Тогда
                                Прервать;
                            КонецЕсли;
                            
                            Если (ПозДефис = 0) ИЛИ (ПозПробел > 0) И (ПозПробел < ПозДефис) Тогда
                                ОтчествоНовое = ОтчествоНовое + " ";
                                Отчество = Сред(Отчество, ПозПробел+1);
                                
                            ИначеЕсли (ПозПробел = 0) ИЛИ (ПозДефис > 0) И (ПозДефис < ПозПробел) Тогда
                                ОтчествоНовое = ОтчествоНовое + "-";
                                Отчество = Сред(Отчество, ПозДефис+1);
                                
                            Иначе
                                Прервать;
                                
                            КонецЕсли;
                            
                            ОтчествоНовое = ОтчествоНовое + МассивОтчество[ИндексОтчество];
                            ИндексОтчество = ИндексОтчество + 1;
                            
                        КонецЦикла;
                        
                    Иначе
                        ОтчествоНовое = СтрЗаменить(ОтчествоНовое, "-", " ");
                        
                    КонецЕсли;
                    
                КонецЕсли;
                
                Результат = СокрЛП(Результат + " " + ОтчествоНовое);
                
            КонецЕсли;
            
        КонецЕсли;
        
        Возврат Истина;
        
    Исключение
        Возврат Ложь;
        
    КонецПопытки;
    
КонецФункции // ПросклонятьФИО()

Функция ФИОНаписаноВерно(Знач СтрокаПараметр, ТолькоКириллица = Ложь) Экспорт
    
    ДопустимыеСимволы = "-";
    
    Возврат (НЕ ТолькоКириллица И СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(СтрокаПараметр, Ложь, ДопустимыеСимволы)) Или
            СтроковыеФункцииКлиентСервер.ТолькоКириллицаВСтроке(СтрокаПараметр, Ложь, ДопустимыеСимволы);
    
КонецФункции

#Если ТолстыйКлиентОбычноеПриложение Тогда

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ РАБОТЫ С ДОПОЛНИТЕЛЬНЫМИ КНОПКАМИ

// Функция инициализирует дерево дополнительных кнопок
//    Параметры:
//        Нет
// Возвращаемое значение:
//        Тип: ДереваЗначений.
Функция ИнициализироватьДеревоДополнительныхКнопок()
    
    ДеревоКнопок = Новый ДеревоЗначений;
    
    //Если ИмяКнопки = Неопределено, создается разделитель
    //Если Дерево имеет подчиненные, то
    
    ДеревоКнопок.Колонки.Добавить("Имя");
    ДеревоКнопок.Колонки.Добавить("ТипКнопки");
    ДеревоКнопок.Колонки.Добавить("Текст");
    ДеревоКнопок.Колонки.Добавить("Подсказка");
    ДеревоКнопок.Колонки.Добавить("Картинка");
    ДеревоКнопок.Колонки.Добавить("Действие");
    ДеревоКнопок.Колонки.Добавить("Пометка");
    
    ДеревоКнопок.Колонки.Добавить("ИзменяетДанные");
    
    //Остальные свойства кнопки
    
    ДеревоКнопок.Колонки.Добавить("Расшифровка");
    
    Возврат ДеревоКнопок;
    
КонецФункции // ()

// Функция добавляет новую строку в дерево кнопок
// Параметры:
//    < СтрокаПодменю > (обязательный)
//        Тип: Дерево или элемент дерева значений, в который необходимо добавить новое описание кнопки
//    < Имя > (обязательный)
//        Тип: Строка. Имя создаваемой кнопки;
//    < ТипКнопки > (по умолчанию «Действие»)
//        Тип: ТипКнопкиКоманднойПанели. Тип создаваемой кнопки (Кнопка, разделитель, подменю);
//    < Текст > (по умолчанию пустая строка)
//        Тип: Строка. Текст кнопки.
//    < Текст > (по умолчанию пустая строка)
//        Тип: Строка. Текст кнопки.
//    < Действие > (по умолчанию «Не Определено»)
//        Тип: Действие. Действие кнопки (процедура должна быть описана в форме объекта, на который навешивается подменю).
//    < Расшифровка > (по умолчанию не определено)
//        Тип: Произвольный.
//    < Пометка > (по умолчанию «Ложь»)
//        Тип: Булево.
//    < Подсказка > (по умолчанию пустая строка)
//        Тип: Строка. Подсказка создаваемой кнопки.
//    < Картинка > (по умолчанию «Не Определено»)
//        Тип: Картинка. Картинка создаваемой кнопки.
// Возвращаемое значение:
//        Тип: СтрокаДереваЗначений.
Функция ДобавитьСтрокуВДеревоКнопок(СтрокаПодменю, Имя, Знач ТипКнопки = Неопределено ,Текст = "", Действие = Неопределено, Расшифровка = Неопределено, Пометка = Ложь, Подсказка = "", Картинка = Неопределено, ИзменяетДанные = Ложь)
    
    Если ТипКнопки = Неопределено Тогда
    
        ТипКнопки = ТипКнопкиКоманднойПанели.Действие;
        
    КонецЕсли;
    
    СтрокаКнопки             = СтрокаПодменю.Строки.Добавить();
    
    СтрокаКнопки.Имя         = Имя;
    СтрокаКнопки.ТипКнопки   = ТипКнопки;
    СтрокаКнопки.Текст       = Текст;
    СтрокаКнопки.Действие    = Действие;
    СтрокаКнопки.Картинка    = Картинка;
    СтрокаКнопки.Подсказка   = Подсказка;
    СтрокаКнопки.Пометка     = Пометка;
    
    СтрокаКнопки.ИзменяетДанные   = ИзменяетДанные;
    
    
    СтрокаКнопки.Расшифровка = Расшифровка;
    Возврат СтрокаКнопки;
    
КонецФункции

// Процедура формирует подменю по дереву значений
// Параметры:
//    < СтрокаПодменю > (обязательный)
//        Тип: Дерево или элемент дерева значений, по данным которого необходимо построить подменю.
//    < Подменю> (обязательный)
//        Тип: Элемент командной панели «Кнопка» типа «Подменю». На которой необходимо сформировать новое подменю.
//    < Очищать> (по умолчанию «Ложь»)
//        Тип: булево. Определяет: следует ли очищать переданное подменю.
//    < ДобавлятьРазделительВНачало > (по умолчанию «Ложь»)
//        Тип: булево. Определяет: следует ли добавить в начало подменю разделитель.
Процедура СформироватьПодменю(СтрокаПодменю, Подменю, Очищать = Ложь, ДобавлятьРазделительВНачало = Ложь) Экспорт
    
    Строки = СтрокаПодменю.Строки;
    Кнопки = Подменю.Кнопки;
    
    Если Очищать Тогда
        Кнопки.Очистить();
    
    КонецЕсли;
    
    Если ДобавлятьРазделительВНачало и Строки.Количество() > 0 Тогда
        Кнопки.Добавить(,ТипКнопкиКоманднойПанели.Разделитель);
    
    КонецЕсли;
    
    Для каждого СтрокаКнопки Из Строки Цикл
        
        Кнопка = Кнопки.Добавить(СтрокаКнопки.Имя,СтрокаКнопки.ТипКнопки, СтрокаКнопки.Текст, СтрокаКнопки.Действие);
        
        Если СтрокаКнопки.Строки.Количество() > 0 Тогда
   
11 ma8883
 
14.08.14
22:22
а я и включил, вот он и остановился на 188 строке, только что здесь делать дальше?
12 ДенисЧ
 
14.08.14
22:23
(11) В результат посмотреть - не?
Shift-F9
13 ma8883
 
14.08.14
22:26
{{1,59}}: Ошибка в выражении

Получается в справочнике Сотрудники все в порядке, ошибка в коде? Что там должно быть?
14 ДенисЧ
 
14.08.14
22:32
(13) Не изображай черепашку. Я не собираюсь телепать.
Картинку давай
15 ma8883
 
14.08.14
22:36
16 ДенисЧ
 
14.08.14
22:37
(15) у тебя ещё одна попытка.
Попробуй выдать наиболее осмысленную картинку.

А прежде чем скринить, внимательно подумай над моими предыдущими сообщениями. Например, про Shift-F9.
17 ma8883
 
14.08.14
22:45
(16) я стараюсь, нажимаю всё, что вы говорите.
После нажатия Shift+F9, выходит окно с предложением ввести "Выражение", сюда кроме как скопировать строку на которую показывает стрелка, и нажать "рассчитать", в голову ничего не пришло, результат самая последняя строка на первой картинке. вот еще дубль:
http://fotki.yandex.ru/users/cons-ma/view/1184917
18 GenV
 
14.08.14
22:50
(17) "Выражение" должно вернуть результат. А "А=Б" ничего не возвращает, оно присваивает.
19 ДенисЧ
 
14.08.14
22:50
(17) Обогиядумнеяду. Но сегодня ещё четверг, нельзя
"В результат посмотреть"
Тут трудно понять, раз уж переменная так называется?
Ладно. Последняя подсказка.
На слове Результат два раз мышкой, чтобы он выделился. Потом Shift-F9.
Или, раз уже watch так нравится - в него новую строчку и слово "результат" без кавычек.
20 ma8883
 
14.08.14
22:53
Значение "гл.Бухгалтер".
Значит должность ему не нравится?
Спасибо ДенисЧ за терпение, я в 1с полный ноль.
21 ДенисЧ
 
14.08.14
22:55
(20) вот теперь возьми и каждый символ проверь. Чтото ему там не нравится
22 ma8883
 
14.08.14
23:06
(21) поменял сначала должность главного бухгалтера в справочнике "Сотрудники организации", ошибка осталась, потом изменил в справочнике "Пользователи", как раз там в Имени звучало "гл.Бухгалтер"