Имя: Пароль:
1C
1С v8
Перевод кода с обычной на УФ | Немного о непонятном
0 ruiner2012
 
21.03.18
09:50
Переношу обработку на управляемую форму. Это 1С ЖКХ ТСЖ ЖСК(БП) 2.0 на 3.0. Почему он определяет справочники и мн.другое как переменные? Их указать как перменныне в процедуре или форме? Думал объекты назначить, не то получается.



К примеру "Ошибка":
ВнешняяОбработка.КВП_ЗагрузкаДанныхПоЛС.Форма.Форма.Форма(246,12)}: Переменная не определена (Справочники)
        Здание = <<?>>Справочники.КВП_Здания.НайтиПоНаименованию(НаименованиеЗдания, Истина); (Проверка: Тонкий клиент)



[CODE]
&НаКлиенте
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Если объект.Организация.Пустая() Тогда
        Сообщить("Не выбрана организация!");
        Возврат;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(объект.Дата) Тогда
        Сообщить("Не выбрана дата, на которую будут записаны данные и открыты лицевые счета!");
        Возврат;
    КонецЕсли;
    
    Если ПустаяСтрока(объект.ФайлЗагрузки) Тогда
        Сообщить("Не выбран файл для загрузки!");
        Возврат;
    КонецЕсли;
    
    Сообщить("Загрузка начата " + ТекущаяДата());
    Сообщить("----------");
    
    ФайлДБФ = Новый XBase;
    ФайлДБФ.Кодировка = КодировкаТекста.UTF8;
    ФайлДБФ.ОткрытьФайл(объект.ФайлЗагрузки, , Истина); //только для чтения
    Если НЕ ФайлДБФ.Открыта() = Истина Тогда
        объект.ОбщегоНазначения.СообщитьОбОшибке("Файл не открыт!");
        Возврат;
    КонецЕсли;
    
    мНастройкиУчетнойПолитикиТСЖ = УПЖКХ_ОбщегоНазначенияСервер.ПолучитьПараметрыУчетнойПолитикиЖКХ(объект.Дата, объект.Организация);
    

    // Данные по площади
    //ТаблицаПлощадей = Новый ТаблицаЗначений;
    //ТаблицаПлощадей.Колонки.Добавить("Помещение");
    //ТаблицаПлощадей.Колонки.Добавить("ОбщаяПлощадь");
    ////
    //ТаблицаДолейЛС = Новый ТаблицаЗначений;
    //ТаблицаДолейЛС.Колонки.Добавить("ЛицевойСчет");
    //ТаблицаДолейЛС.Колонки.Добавить("Помещение");
    //ТаблицаДолейЛС.Колонки.Добавить("Доля");
    
    ТаблицаПлощадей = Новый Массив;
    Структура = Новый Структура;
    Структура.Вставить("Помещение") ;
    Структура.Вставить("ОбщаяПлощадь");
    ТаблицаПлощадей.Добавить(Структура);

    ТаблицаДолейЛС = Новый Массив;
    Структура = Новый Структура;
    Структура.Вставить("ЛицевойСчет");
    Структура.Вставить("Помещение");
    Структура.Вставить("Доля");
    ТаблицаДолейЛС.Добавить(Структура);
        
    //НомерСтроки = 0;
    Пока НЕ ФайлДБФ.ВКонце() Цикл
        
        //НомерСтроки = НомерСтроки + 1;
        //ФайлДБФ.Перейти(НомерСтроки);
        
        ЛицевойСчетСтрока = УстановкаНомераЛицевогоСчета();  // СокрЛП(ФайлДБФ.LS);
        ФИО = СокрЛП(ФайлДБФ.FIO);
        Корпус = СокрЛП(ФайлДБФ.KORP);
        Квартира = ФайлДБФ.KV;
        КолЗарегистрированных = ФайлДБФ.ZAREG;
        КолОтсутствующих = ФайлДБФ.OTSUTS;
        КолКомнат = ФайлДБФ.KOL_KOMN;
        ОбщаяПлощадь = ФайлДБФ.OB_PLOSH;
        НаселенныйПункт = СокрЛП(ФайлДБФ.NP);
        НаименованиеУлицы = СокрЛП(ФайлДБФ.NAME_UL);
        ТипУлицы = СокрЛП(ФайлДБФ.TIP_UL);
        НомерДома = ФайлДБФ.DOM;
        Улица = НаименованиеУлицы; // + " " + ТипУлицы;
        
        Состояние("" + ФайлДБФ.НомерЗаписи() + "/" + ФайлДБФ.КоличествоЗаписей() + ": " + ФИО);
        ОбработкаПрерыванияПользователя();
        
        ФайлДБФ.Следующая();
        
        Если ПустаяСтрока(ЛицевойСчетСтрока) ИЛИ ПустаяСтрока(ФИО) ИЛИ ПустаяСтрока(НаселенныйПункт + Улица) Тогда
            Продолжить;
        КонецЕсли;
        
        // Справочник "Здания"
        СтруктАдрес = Новый Структура;
        СтруктАдрес.Вставить("АдресРФ",                   Истина);
        СтруктАдрес.Вставить("КодСтраны",                 "");
        СтруктАдрес.Вставить("Страна",                    "");
        СтруктАдрес.Вставить("Индекс",                    "");
        СтруктАдрес.Вставить("Регион",                    "");
        СтруктАдрес.Вставить("РегионСокращение",          "");
        СтруктАдрес.Вставить("КодРегиона",                "");
        СтруктАдрес.Вставить("Район",                     "");
        СтруктАдрес.Вставить("РайонСокращение",           "");
        СтруктАдрес.Вставить("Город",                     НаселенныйПункт);
        СтруктАдрес.Вставить("ГородСокращение",           "");
        СтруктАдрес.Вставить("НаселенныйПункт",           "");
        СтруктАдрес.Вставить("НаселенныйПунктСокращение", "");
        СтруктАдрес.Вставить("Улица",                     Улица);
        СтруктАдрес.Вставить("УлицаСокращение",           "");
        СтруктАдрес.Вставить("Дом",                       "" + НомерДома);
        СтруктАдрес.Вставить("ТипДома",                   "");
        СтруктАдрес.Вставить("Корпус",                    Корпус);
        СтруктАдрес.Вставить("ТипКорпуса",                "");
        СтруктАдрес.Вставить("Квартира",                  "");
        СтруктАдрес.Вставить("ТипКвартиры",               "");
        СтруктАдрес.Вставить("Представление",             НаселенныйПункт + ", " + Улица + "., дом № " + НомерДома + ?(ПустаяСтрока(Корпус), "", ", корпус " + Корпус));
        СтруктАдрес.Вставить("ЗначенияПолей",             "");
        
        НаименованиеЗдания = Структура; //УправлениеКонтактнойИнформацией.СведенияОбАдресах(СтруктАдрес);
        Здание = Справочники.КВП_Здания.НайтиПоНаименованию(НаименованиеЗдания, Истина);
        Если Здание.Пустая() Тогда
            ЗданиеОбъект = объект.Справочники.КВП_Здания.СоздатьЭлемент();
            ЗданиеОбъект.Наименование = НаименованиеЗдания;
            ЗданиеОбъект.НомерДома = "" + НомерДома + ?(ПустаяСтрока(Корпус), "", "/" + Корпус);
            ЗданиеОбъект.Многоквартирное = Истина;
            ЗданиеОбъект.ТипСооружения = объект.Перечисления.УПЖКХ_ТипСооружения.Здание;
            Если НЕ объект.КВП_ЗаписатьОбъект(ЗданиеОбъект) Тогда
                Продолжить;
            КонецЕсли;
            Здание = ЗданиеОбъект.Ссылка;
            ЗаписатьАдресЗдания(Здание, СтруктАдрес);
        Иначе
            ДанныеАдреса = объект.РегистрыСведений.КВП_Адреса.СрезПоследних(КонецДня(объект.Дата),
                             Новый Структура("Объект, Вид", Здание, объект.Перечисления.КВП_ВидыАдресов.Здание));
            Если ДанныеАдреса.Количество() = 0 Тогда
                ЗаписатьАдресЗдания(Здание, СтруктАдрес);
            КонецЕсли;
        КонецЕсли;
        
        // Справочник "Квартиры".
        Помещение = объект.Справочники.УПЖКХ_Помещения.НайтиПоКоду(Квартира, , , Здание);
        Если Помещение.Пустая() Тогда
            ПомещениеОбъект = объект.Справочники.УПЖКХ_Помещения.СоздатьЭлемент();
            ПомещениеОбъект.Код = Квартира;
            ПомещениеОбъект.Владелец = Здание;
            ПомещениеОбъект.ВидПомещения = объект.Справочники.УПЖКХ_ВидыПомещений.НайтиПоКоду("000000001");
            ПомещениеОбъект.Наименование = "Кв. " + Квартира;
            ПомещениеОбъект.КоличествоКомнат = КолКомнат;
            Если НЕ объект.КВП_ЗаписатьОбъект(ПомещениеОбъект) Тогда
                Продолжить;
            КонецЕсли;
            Помещение = ПомещениеОбъект.Ссылка;
        КонецЕсли;
        
        // Общая площадь помещения.
        СтрокаПлощади = объект.ТаблицаПлощадей.Добавить();
        СтрокаПлощади.Помещение = Помещение;
        СтрокаПлощади.ОбщаяПлощадь = ОбщаяПлощадь;
        
        объект.ТаблицаПлощадей.Свернуть("Помещение", "ОбщаяПлощадь");
        СтрокаПомещения = объект.ТаблицаПлощадей.Найти(Помещение, "Помещение");
        Если НЕ СтрокаПомещения = Неопределено Тогда
            НаборЗаписей = объект.РегистрыСведений.КВП_ПлощадьПомещения.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.Объект.Установить(Помещение);
            НаборЗаписей.Отбор.ВидПлощади.Установить(объект.Справочники.УПЖКХ_ВидыПлощадей.НайтиПоКоду("000000001"));  // ОбщаяПлощадь
            НаборЗаписей.Отбор.Период.Установить(объект.Дата);
            НовЗапись = НаборЗаписей.Добавить();
            НовЗапись.Период = объект.Дата;
            НовЗапись.Объект = Помещение;
            НовЗапись.ВидПлощади = объект.Справочники.УПЖКХ_ВидыПлощадей.НайтиПоКоду("000000001");   // ОбщаяПлощадь
            НовЗапись.Площадь = СтрокаПомещения.ОбщаяПлощадь;
            объект.КВП_ЗаписатьОбъект(НаборЗаписей);
        КонецЕсли;
        
        // Лицевой счет.
        ЛицевойСчет = объект.Справочники.КВП_ЛицевыеСчета.НайтиПоНаименованию(ЛицевойСчетСтрока, Истина);
        Если ЛицевойСчет.Пустая() Тогда
            ТекРодитель = объект.ГруппаЛС;
            //Если ПустаяСтрока(Улица) Тогда
            //    ТекРодитель = Справочники.КВП_ЛицевыеСчета.ПустаяСсылка();
            //Иначе
            //    ТекРодитель = Справочники.КВП_ЛицевыеСчета.НайтиПоНаименованию(Улица, Истина);
            //    Если ТекРодитель.Пустая() ИЛИ НЕ ТекРодитель.ЭтоГруппа Тогда
            //        ЛСГруппа = Справочники.КВП_ЛицевыеСчета.СоздатьГруппу();
            //        ЛСГруппа.Наименование = Улица;
            //        Если КВП_ЗаписатьОбъект(ЛСГруппа) Тогда
            //            ТекРодитель = ЛСГруппа.Ссылка;
            //        КонецЕсли;
            //    КонецЕсли;
            //КонецЕсли;
            ЛицевойСчетОбъект = объект.Справочники.КВП_ЛицевыеСчета.СоздатьЭлемент();
            ЛицевойСчетОбъект.Наименование  = ЛицевойСчетСтрока;
            ЛицевойСчетОбъект.Родитель = ТекРодитель;
            ЛицевойСчетОбъект.Адрес = Помещение;
            //ЛицевойСчетОбъект.ТипВладельца  = ЛицевойСчетОбъект.Контрагент.ЮрФизЛицо;
            //ЛицевойСчетОбъект.ВидЧастнойСобственности = Перечисления.КВП_ВидыЧастнойСобственности.Совместная;
            //ЛицевойСчетОбъект.ДатаОткрытия  = Дата;
            Если НЕ объект.КВП_ЗаписатьОбъект(ЛицевойСчетОбъект) Тогда
                Продолжить;
            КонецЕсли;
            ЛицевойСчет = ЛицевойСчетОбъект.Ссылка;
        КонецЕсли;
        
        СтрокаЛС = ТаблицаДолейЛС.Добавить();
        СтрокаЛС.ЛицевойСчет = ЛицевойСчет;
        СтрокаЛС.Помещение = Помещение;
        СтрокаЛС.Доля = ОбщаяПлощадь;
        
        // Проживающий.
        Проживающий = СоздатьПроживающего(ЛицевойСчет, ФИО);
        Если Не ЗначениеЗаполнено(Проживающий) Тогда
            Продолжить;
        КонецЕсли;
        
        // Укажем проживающего, как владельца л/с.
        //ЛицевойСчетОбъект = ЛицевойСчет.ПолучитьОбъект();
        //ЛицевойСчетОбъект.ВладелецОбъекта = Проживающий;
        //КВП_ЗаписатьОбъект(ЛицевойСчетОбъект);
        //ЛицевойСчет = ЛицевойСчетОбъект.Ссылка;
        
        // Документ "Открытие лицевого счета".
        ДанныеЛС = объект.РегистрыСведений.КВП_ЛицевыеСчета.СрезПоследних(объект.Дата, Новый Структура("ЛицевойСчет", ЛицевойСчет));
        Если ДанныеЛС.Количество() > 0 Тогда
            Если ДанныеЛС[0].Действует Тогда
                Продолжить;
            КонецЕсли;
        КонецЕсли;
        
        ДокументОбъект = объект.Документы.КВП_ОткрытиеЛицевогоСчета.СоздатьДокумент();
        ДокументОбъект.Дата        = объект.Дата;
        ДокументОбъект.ЛицевойСчет = ЛицевойСчет;
        НовКонтрагент = СоздатьКонтрагента(ФИО);
        ДокументОбъект.Контрагент = НовКонтрагент;
        ДокументОбъект.ДоговорКонтрагента     = НовКонтрагент.ОсновнойДоговорКонтрагента;
        ДокументОбъект.Комментарий = "Открытие л/с; дом " + Здание.НомерДома + ", " + Помещение + "; " + ФИО;
        
/////////// Раскомментировать для ПроживающихГотовымиЧислами
        //ТЧДокОткрЛС = ДокументОбъект.Главная;
        //СтрокаТЧ = ТЧДокОткрЛС.Добавить();
        //СтрокаТЧ.Проживающий = Проживающий;
        //СтрокаТЧ.Собственник = ИСТИНА;
////////////////////////////////        
        ДокументОбъект.ОтветственныйСобственник = Проживающий;
        // Проживающие готовыми числами
        КолПроживающих = КолЗарегистрированных - КолОтсутствующих;
        ДокументОбъект.КоличествоЗарегистрированных = КолЗарегистрированных;
        ДокументОбъект.КоличествоПроживающих = КолПроживающих;
        
        // Проживающие НЕ готовыми числами
        Если НЕ объект.Константы.УПЖКХ_УказыватьКоличествоПрожИЗарегЧислами.Получить() Тогда
            
            КолСтрокПроживающих = Макс(КолПроживающих, КолЗарегистрированных);
            тмКолПроживающих = КолПроживающих;
            тмКолЗарегистрированных = КолЗарегистрированных;
            
            ТабличнаяЧасть = ДокументОбъект.Главная;
            // Добавим проживающих в табличную часть документа.
            НоваяСтрока = ТабличнаяЧасть.Добавить();
            НоваяСтрока.Проживающий = Проживающий;
            НоваяСтрока.Собственник = ИСТИНА;
            НоваяСтрока.Проживает   = ?(тмКолПроживающих = 0, Ложь, Истина);
            НоваяСтрока.Прописан    = ?(тмКолЗарегистрированных = 0, Ложь, Истина);
            
            тмКолПроживающих = Макс(0, тмКолПроживающих - 1);
            тмКолЗарегистрированных = Макс(0, тмКолЗарегистрированных - 1);
            
            Для Индекс = 2 По КолСтрокПроживающих Цикл
                ТекПроживающий = СоздатьПроживающего(ЛицевойСчет, "Проживающий_" + ЛицевойСчет + "_" + Индекс);
                Если Не ЗначениеЗаполнено(ТекПроживающий) Тогда
                    Продолжить;
                КонецЕсли;
                НоваяСтрока = ТабличнаяЧасть.Добавить();
                НоваяСтрока.Проживающий = ТекПроживающий;
                НоваяСтрока.Проживает   = ?(тмКолПроживающих = 0, Ложь, Истина);
                НоваяСтрока.Прописан    = ?(тмКолЗарегистрированных = 0, Ложь, Истина);
                
                тмКолПроживающих = Макс(0, тмКолПроживающих - 1);
                тмКолЗарегистрированных = Макс(0, тмКолЗарегистрированных - 1);
            КонецЦикла;
            
        КонецЕсли;
        
        объект.КВП_ЗаписатьОбъект(ДокументОбъект, РежимЗаписиДокумента.Проведение);
        
    КонецЦикла;
    
    ФайлДБФ.ЗакрытьФайл();
    
    КоличествоЛС = ТаблицаДолейЛС.Количество();
    НомерСтроки = 1;
    Для Каждого СтрокаЛС ИЗ ТаблицаДолейЛС Цикл
        Состояние("" + НомерСтроки + "/" + КоличествоЛС + ": установка доли л/с " + СтрокаЛС.ЛицевойСчет);
        ОбработкаПрерыванияПользователя();
        СтрокаПомещения = объект.ТаблицаПлощадей.Найти(СтрокаЛС.Помещение, "Помещение");
        Если НЕ СтрокаПомещения = Неопределено Тогда
            // Запись долей собственности.
            РазмерСтавок = объект.РегистрыСведений.КВП_РазмерыДолейЛицевыхСчетов.СоздатьНаборЗаписей();
            РазмерСтавок.Отбор.Период.Установить(объект.Дата);
            РазмерСтавок.Отбор.Объект.Установить(СтрокаЛС.Помещение);
            РазмерСтавок.Отбор.ЛицевойСчет.Установить(СтрокаЛС.ЛицевойСчет);
            НовЗапись = РазмерСтавок.Добавить();
            НовЗапись.Период          = объект.Дата;
            НовЗапись.Объект          = СтрокаЛС.Помещение;
            НовЗапись.ЛицевойСчет     = СтрокаЛС.ЛицевойСчет;
            НовЗапись.ДоляЧислитель   = СтрокаЛС.Доля;
            НовЗапись.ДоляЗнаменатель = СтрокаПомещения.ОбщаяПлощадь;
            объект.КВП_ЗаписатьОбъект(РазмерСтавок);
        КонецЕсли;
        НомерСтроки = НомерСтроки + 1;
    КонецЦикла;
    
    Сообщить("----------");
    Сообщить("Загрузка завершена " + ТекущаяДата());
    
КонецПроцедуры
[/CODE]
1 Cool_Profi
 
21.03.18
09:52
Наверное, потому что Справочники не доступно на клиенте?
2 Buster007
 
21.03.18
09:55
(0) предлагаю почитать хотя бы основные отличия кодирования для работы в тонком и толстом клиенте
3 Малыш Джон
 
21.03.18
09:55
(0) лучше сначала немного почитать/посмотреть курсы по программированию в УФ, так как отличий от ОФ достаточно много. Без этого так можно на каждом шагу спотыкаться.
4 Fish
 
21.03.18
10:10
(3) +100. Без понятия о том, что доступно на клиенте, а сто на сервере, за перенос с ОФ на УФ лучше и не браться.
И что ты хотел сделать вот этим кодом?
"ЛицевойСчетОбъект = объект.Справочники.КВП_ЛицевыеСчета.СоздатьЭлемент();"
5 Fish
 
21.03.18
10:11
(4) Второе предложение к автору ветки адресовано, конечно.
6 DeeK
 
21.03.18
10:14
вынеси весь код в тело новой процедуры с директивой &НаСервере и вызови с клиента, ошибок поубавится
7 Fish
 
21.03.18
10:23
(6) Предлагаешь перегонять весь контекст формы на сервер только ради избавления от ошибок, рождённых незнанием технологии "клиент-сервер"?
8 DeeK
 
21.03.18
10:28
(7) нет, но явно у человека проблема раз ему система говорит что не знает что такое справочники на клиенте, а он не понимает что происходит, так хоть тяп ляп сделает и походу разберется, потом и понимание придет
9 RomanYS
 
21.03.18
10:29
(7) в данном конкретном случае ТС всё равно именно к этому придёт. А вот с осознанием после (3) или с "незнанием" это большая разница для ТС, но не для данной задачи
10 Fish
 
21.03.18
10:33
(8) Вариант, конечно, но имхо, понимание придёт лишь после изучения предмета (хотя бы основ). А то, научится делать "тяп-ляп", без понимания, и будет так делать всегда. Многие (по моим наблюдениям) на этом и успокаиваются. По принципу "работает ведь" :))
11 DeeK
 
21.03.18
10:35
(10) ну и вам же лучше, вы же будете ценней на рынке, чем такие тяп-ляп ребята
12 lodger
 
21.03.18
10:36
(7) отраслёвка первое время вся так работала.
13 Малыш Джон
 
21.03.18
10:39
(11) ммммм... ну не факт

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

(10) ну тут уже ТСу решать, если человек захочет развиваться - найдет способ где и какую найти инфу и как её усвоить, не захочет - не заставишь ведь
14 DrZombi
 
гуру
21.03.18
10:56
(0) На клиенте нет некоторых методов, смирись.
Все шаманства выполняются на сервере :)
15 DrZombi
 
гуру
21.03.18
10:58
(10) Видел такое творение, когда писали на УФ для обычного клиента (толстого). Там такое творение как в (0) проскакивает на ура :)
16 Вафель
 
21.03.18
11:06
перенести процедура на сервер. оттуда брать файл
https://gist.github.com/a-sitnikov/979033242fd6f9b833164669b651b5f2
17 VladZ
 
21.03.18
11:12
(0) Для начала нужно почитать букварь.
Переносить код "один в один" не получится. Нужно разделять функционал: что-то будет на клиенте выполняться, что-то на сервере.

И да, каждый раз, когда нужно программировать на УФ - вспоминаю разработчиков нехорошими словами. ИМХО, ну не нужны всем пользователям 1С управляемые формы. Клиент-серверная архитектура нужна, на мой взгляд, 30ти процентам всех пользователей (если не меньше). И из-за этих людей остальные должны "корячиться"...
18 Fish
 
21.03.18
11:13
(17) А кто мешает включить обычный режим, и разрабатывать конфу на ОФ?
19 Вафель
 
21.03.18
11:15
(18) так про доработку типовых идет речь.
Ктож нынче с 0 пишет то?
20 Otark
 
21.03.18
11:15
(17)Ты просто не привык. Немного неудобно местами да. Но не настолько, что-бы говорить, что надо "корячиться"
21 Вафель
 
21.03.18
11:16
(20) так помимо клиент сервера еще есть асинхронность
22 Fish
 
21.03.18
11:18
(19) Так а типовая - ты покупаешь готовый продукт. И не можешь указывать разработчику, как его делать. Ты же не ругаешься на майкрософт и его новый интерфейс? По мне так тоже, старый был гораздо лучше, а новый нужет 10% пользователей :))
23 Вафель
 
21.03.18
11:19
(22) Не готовый, а полуфабрикат
24 novichok79
 
21.03.18
11:23
(0) ТЗ в табличные части, если они нужны на клиенте. обработку асинхронных вызовов диалогов открытия / сохранения файлов можно глянуть в типовых или БСП.
и да, все на сервер, кроме обработок строк табличных частей... вот это лучше на клиент, иначе тормоза будут аховые.
25 VladZ
 
21.03.18
11:33
(22) "Ты же не ругаешься на майкрософт и его новый интерфейс?" - ругаю. Вот не нравится мне 10я винда - и не ставлю ее. Согласен, придет время, и придется установить. Никуда не денешься.
26 Fish
 
21.03.18
11:36
(23) Не полуфабрикат, а именно готовый. Знаю бухгалтера, которая обслуживает несколько небольших фирм - везде пользуется типовыми без малейших доработок. Для крупных фирм, как правило, приходится допиливать, но встречались и такие, где бухучет велся на полностью типовой БП. Или ЗУП был полностью типовой.
27 ruiner2012
 
22.03.18
09:39
Программирование в 1С:Предприятие 8.3 (Сергей Кашаев)

С этой книги стоит ли начать? Или что порекомендуете, я не хочу делать "кабы-кабы" и "и так сойдет". Хочется нормально разрабатывать, чтобы эффективность повысить можно было бы. В обычную форму очень легко пилить, а вот в УФ, хоть убей, ну не могу получается. Столько просмотрел и прочитал, но все не то видимо. Будем углубляться, кто что посоветует почитать или посмотреть по "ПРОГРАММИРОВАНИЕ НА УФ":?
28 spiller26
 
22.03.18
09:58
(27) Добро пожаловать в "Клиент-Серверное", ещё много придется разбираться в процессе перехода на УФ.
"НаКлиенте" многое что не доступно.
29 hhhh
 
22.03.18
10:03
(27) ну обычная сложнее конечно.
30 novichok79
 
22.03.18
10:04
(27) код типовых советую глянуть. лучше любого учебника. теория + практика сразу.
31 ruiner2012
 
22.03.18
10:07
Если не сложно, то можно волшебную ссылочку, буду благодарен.
32 ruiner2012
 
22.03.18
10:08
Хех, типовых таких отчетов нет, но посмотрю, поизучаю с чего начать.
33 Ц_У
 
22.03.18
10:10
Все что нужно знать о К-С программировании:
Работа с объектами метаданных, данными ИБ - сервер
Интерфейсная часть, простые расчеты - клиент
остальное от лукавого.