Имя: Пароль:
1C
 
Стоит в ТП писать по поводу ошибок в БСП?
0 RomaH
 
naïve
17.02.20
07:13
Подсистема РаботаСФайлами
Создаю реквизит типа "Присоединенный файл"

и понеслось - исправляю одну ошибку - вылезает следующая
то имя реквизита формы не правильно составили, то в индекс строку передают
то алгоритм проверки чужой подсовывают

есть ли успешный опыт исправления БСП посредством баг-репортов или забить?
1 RomaH
 
naïve
17.02.20
07:14
Если Не ДобавляемыйЭлемент.ТолькоОдинФайл Тогда
            
            СоздатьПоШаблону = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиСоздатьПоШаблону_" + НомерЭлемента);
            СоздатьПоШаблону.Заголовок = НСтр("ru = 'Создать по шаблону...'");
            ЗаполнитьЗначенияСвойств(СоздатьПоШаблону, СвойстваКомандыФормы);
        
            Если ДобавляемыйЭлемент.ПоказыватьКоманднуюПанель Тогда
                ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСоздатьПоШаблону" + НомерЭлемента,
                    ГруппаПодменю, СоздатьПоШаблону.Имя);
                //Исправим - ведь эту кнопку ждут и надеются    
                ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСоздатьПоШаблонуИзКонтекстногоМеню" + НомерЭлемента,
                    ГруппаДобавленияКонтекстногоМеню, СоздатьПоШаблону.Имя);
            КонецЕсли;
            
            //Если ДобавляемыйЭлемент.ПоказыватьПредпросмотр Тогда
            //    ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСоздатьПоШаблонуИзКонтекстногоМеню" + НомерЭлемента,
            //        ГруппаДобавленияКонтекстногоМеню, СоздатьПоШаблону.Имя);
            //КонецЕсли;
        
            Сканировать = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиСканировать_" + НомерЭлемента);
            Сканировать.Заголовок = НСтр("ru = '" + ?(ОбщегоНазначения.ЭтоМобильныйКлиент(), "Сфотографировать", "Сканировать")+ "...'");
            ЗаполнитьЗначенияСвойств(Сканировать, СвойстваКомандыФормы);
        
            Если ДобавляемыйЭлемент.ПоказыватьКоманднуюПанель Тогда
                ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСканировать" + НомерЭлемента,
                    ГруппаПодменю, Сканировать.Имя);
                //Исправим    
                ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСканироватьИзКонтекстногоМеню" + НомерЭлемента,
                    ГруппаДобавленияКонтекстногоМеню, Сканировать.Имя);
            КонецЕсли;
            
            //Если ДобавляемыйЭлемент.ПоказыватьПредпросмотр Тогда
            //    ДобавитьКнопкуНаФорму(Форма, "УправлениеПрисоединеннымиФайламиСканироватьИзКонтекстногоМеню" + НомерЭлемента,
            //        ГруппаДобавленияКонтекстногоМеню, Сканировать.Имя);
            //КонецЕсли;
                    
        КонецЕсли;
2 RomaH
 
naïve
17.02.20
07:16
Процедура ОбновитьРеквизитХраненияПрисоединенногоФайла(Форма, Знач НомерЭлемента, Файл)
    
    Если ТипЗнч(НомерЭлемента) = Тип("Строка") Тогда //Тут не забыли
        НомерЭлемента = Число(НомерЭлемента);
    КонецЕсли;
    
    ПутьКДанным = Форма.ПараметрыРаботыСФайлами[НомерЭлемента].ПутьКРеквизитуРазмещения;
    ЧастиПутиКДанным = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ПутьКДанным, ".", Истина, Истина);
    
    Если ЧастиПутиКДанным.Количество() > 0 Тогда
        
        УровеньРасположенияРеквизита = ЧастиПутиКДанным.Количество();
        Если УровеньРасположенияРеквизита = 1 Тогда
            Форма[ЧастиПутиКДанным[0]] = Файл;
        ИначеЕсли УровеньРасположенияРеквизита = 2 Тогда
            Форма[ЧастиПутиКДанным[0]][ЧастиПутиКДанным[1]] = Файл;
        Иначе
            Возврат;
        КонецЕсли;
        
        ОбновитьОбластьПредпросмотра(Форма, НомерЭлемента, Файл);
        
        Форма.Модифицированность = Истина;
        
    КонецЕсли;
    
КонецПроцедуры

Процедура ОбновитьОбластьПредпросмотра(Форма, НомерЭлемента, Файл)
    
    //ИмяРеквизита = Форма.ПараметрыРаботыСФайлами[НомерЭлемента].ПутьКДаннымИзображения;//А тут забыли
    ИмяРеквизита = Форма.ПараметрыРаботыСФайлами[Число(НомерЭлемента)].ПутьКДаннымИзображения;
    ЭлементКартинки = Форма.Элементы.Найти("ПолеКартинкиПрисоединенногоФайла" + НомерЭлемента);
    ЭлементЗаголовка = Форма.Элементы.Найти("ЗаголовокПрисоединенногоФайла" + НомерЭлемента);
3 АНДР
 
17.02.20
07:18
Стоит, как  минимум будет в списке ошибок.
По деньгам - бесплатно, не считая ИТС.
4 GreenSCI
 
17.02.20
07:21
По своему опыту скажу, что они это прочитают, и даже, ответят примерно следующее: "Ошибка будет исправлена в одном из следующих релизе БСП...". Есть шанс, что пофиксят через полгода.
5 RomaH
 
naïve
17.02.20
07:21
(3) по деньгам - мне письмо составлять только час
по прошлому опыту - "воспроизвести не можем, у нас лапки"

фишка в том, что ошибки можно воспроизвести только последовательно, пока не исправишь первую - до второй не добраться


ИначеЕсли СтрНачинаетсяС(ИмяКоманды, "ЗагрузитьФайл") Тогда
        
        ИмяКоманды = СтрЗаменить(ИмяКоманды, "ЗагрузитьФайл", "");
        ФайлыВладельца = РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(ВладелецПрисоединенныхФайлов, Истина);
        Если СтрНачинаетсяС(ИмяКоманды, "ТолькоОдинФайл")
            //И ФайлыВладельца.Количество > 0 Тогда //Как оно вообще работает?
            И ФайлыВладельца.КоличествоФайлов > 0 Тогда
6 RomaH
 
naïve
17.02.20
07:29
(4) они читают письма с кодом?

я как-то послал репорт с кодом - ответили, что код, это не ваше дело, описывайте как воспроизвести
а это был ЗУП 2.5, там для воспроизвести сначала надо было разобраться как оно вообще в это условие попало

типа такого письма поймут?

ОМ РаботаСФайлами
строка 2640
        //ЗагрузитьФайл = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиЗагрузитьФайл_"
        //    + ТолькоОдинФайлТекст + НомерЭлемента);
        ЗагрузитьФайл = Форма.Команды.Добавить("УправлениеПрисоединеннымиФайламиЗагрузитьФайл" + ТолькоОдинФайлТекст +"_"
            + НомерЭлемента);

не верно составлено имя команды, в дальнейшем "_" ожидается в другом месте, по аналогии с другими именами

??
7 Cyberhawk
 
17.02.20
10:18
Версию БСП-то огласи
8 RomaH
 
naïve
17.02.20
10:54
последняя
9 H A D G E H O G s
 
17.02.20
11:37
Бесперспективняк
10 pechkin
 
17.02.20
11:47
(2) у тебя же уже 1 раз в число преобразовано. зачем еще раз?
11 RomaH
 
naïve
17.02.20
11:53
(10) не беси меня
12 nicxxx
 
17.02.20
12:36
(0) У них задач в трекере на годы вперед, поэтому если можешь исправить сам - делай. И создай себе исправительный релиз или инструкцию, которую будешь повторять при каждом обновлении БСП. И вообще БСП они дают бесплатно (подписка на ИТС не в счет, это для основной поставки), так что смысл тут жаловаться? Это к (4).
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший