|
Перевод кода с обычной на УФ | Немного о непонятном | ☑ | ||
---|---|---|---|---|
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
|
Все что нужно знать о К-С программировании:
Работа с объектами метаданных, данными ИБ - сервер Интерфейсная часть, простые расчеты - клиент остальное от лукавого. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |