Развитие управляемого интерфейса в 1С 8.2 — 1С 8.3




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

99 Comments

  1. PowerBoy
    А так, конечно, УФ намного быстрее обычных, т.к. работают по трехзвенной схеме между клиентом и сервером.

    Это предложение я бы переписал так:

    А так, конечно, УФ намного медленнее обычных, т.к. требуют время на их компоновку и формирование.
    Reply
  2. fixin

    (1) компоновка происходит локально на компьютере, а вот данные гоняются по каналу связи, который может быть хоть веб-каналом, т.е. канал связи намного медленнее локального компьютера. Не надо экономить на спичках, надо видеть узкие места.

    Reply
  3. prolog

    Макс Планк в своё время сказал, что новые идеи не вытесняют из нашего сознания старые представления. Просто отмирают сторонники старых идей. С большим уважением отношусь к данной публикации. С интересом её прочитал. На мой взгляд, при прочих равных условиях, есть большое преимущество у тех, кто начал осваивать разработку программ на 1C сразу с управляемого интерфейса.

    Reply
  4. Diversus

    (2) это все так, но вот сама отрисовка тормозит и за счет этого все медленнее…

    Это признает сама 1С и 8.3.7 будет предложен новый механизм размещения элементов на форме

    Reply
  5. kostas

    Не забываем сказать о глюках УФ при растягивании формы.

    Reply
  6. tormozit

    Неявные контекстные серверные вызовы — одна из самых больших бед текущего механизма отрисовки управляемых форм. Например любое изменение видимости/доступности или заголовка их вызывает. Серьезно добавляют тормозов на больших формах.

    Reply
  7. karpik666

    Такой своеобразный личностный переход человека от обычных форм к управляемому интерфейсу с элементами конспекта лекций. Рад, что вы так быстро освоили управляемые формы.

    Reply
  8. dimonchik

    Спасибо. Было интересно почитать.

    Reply
  9. Yashazz

    Дневничковая запись из серии «как я осваивал азы УФ и 8.3». Почему автор наивно думает, что этим личным заметочкам место на ИС, я не знаю. Ну давайте ещё делать публикации в духе «как я вчера делал перенумератор».

    Не статья, а набор заметок, сделанных на курсах и после них. Всё это есть в книжках для начинающих, на ИТС и сайтах 1С, причём изложено гораздо более полно и связно.

    Лично я понял смутно, а значит, большинство так и не поймет

    А ты за всех не говори, «гений».

    Reply
  10. fixin

    (9) Уважаемый, найдите мне статью, где раскрывается понятие модальности, разницы между 82 и Такси и нюансы организации навигации в 82-83? Тогда я скажу, что написал статью зря.

    Эта статья — как бы ввод в тему управляемого интерфейса для тех, кто застрял на 81, все разжевывается очень доступно. Не надо вот этих наездов.

    Reply
  11. fixin

    (3) я пережил переход с 77 на 80, и ниче. 77 уже не вспоминаю.

    Reply
  12. TODD22

    (10) http://v8.1c.ru/o7/201301nm/ и тд.

    Уважаемый, найдите мне статью, где раскрывается

    Ваша статья то же не раскрывает данных понятий. Лишь общие фразы без конкретных примеров.

    Reply
  13. fixin

    (12) если бы мне кто сказал эти общие фразы в свое время, когда я не имел представления об УФ, я был бы признателен. Понятие модальности например, раскрывается полностью.

    Вы отсылаете к ИТС и 1С. Во-первых это ресурсы закрытые, а во-вторых это большой массив информации, там можно в трех соснах заблудиться.

    Считайте мою статью аннотацией к этим материалам, картой к учебной курве.

    Но опять же, если вы считаете что моя статья — это не новое слово, дайте ссылку на статью с подобной аннотацией, где разжевывается для новичков про УФ. «Под капотом УФ» я читал, это не про то. Итак, жду ссылки, или критику считаю необоснованной.

    Reply
  14. TODD22

    (13)

    Вы отсылаете к ИТС и 1С. Во-первых это ресурсы закрытые, а во-вторых это большой массив информации, там можно в трех соснах заблудиться.

    Это не ИТС!

    Reply
  15. fixin

    (14) не понял комментария.

    Reply
  16. TODD22

    (15)

    Вы отсылаете к ИТС и 1С. Во-первых это ресурсы закрытые, а во-вторых это большой массив информации, там можно в трех соснах заблудиться.

    Ссылка что я привёл это не ИТС. И к ней свободный доступ.

    Reply
  17. fixin

    (4) Diversus, это нюансы реализации. Сам трехзвенный клиент-серверный подход в общем-то понятен

    Reply
  18. fixin

    (12) замечательно, замечательно. И как программист, интересующийся УФ должен найти эту статью? Методом тотального чтения сайта 1С? еще раз — моя статья — краткая аннотация по теме новых гитек управляемого интерфейса. Более глубокое понимание можно получить в том числе и по вашей ссылке. Я описываю кратко и ёмко.

    Вообще, конечно, странно, что критикуя одну «дневничковую» запись, вы отсылаете к другой «Дневничковой» записи, на этот раз Нуралиева. Причем критикуя аннотацию по всей теме управляемого интерефейса, вы даете ссылку на запись с частным случаем. Где логика?

    Да, возможно с вашей точки зрения 1с-ник должен штудировать блог Нуралиева, но я предлагаю ему съэкономить время и получить основные понятия из моей статью. Как то так.

    Reply
  19. TODD22

    (18)

    И как программист, интересующийся УФ должен найти эту статью?

    А как он должен найти вашу статью?

    Я же как то нашёл. И не я один.

    Вообще, конечно, странно, что критикуя одну «дневничковую» запись, вы отсылаете к другой «Дневничковой» записи, на этот раз Нуралиева.

    Я не критиковал вашу статью. Вы просили дать вам ссылку на более подробное описание. Я её вам дал. По остальным частным случаям то же есть ссылки.

    Да, возможно с вашей точки зрения 1с-ник должен штудировать блог Нуралиева

    Это ваши домыслы что должен делать 1Сник, а что нет… Но читать блог хорошее дело.

    Reply
  20. Evil Beaver

    А fixin и Гений1С это один и тот же человек или нет?

    Reply
  21. TODD22

    (20) Evil Beaver, вроде как да…

    Reply
  22. capitan

    Для тех кто не боится большого количества букс, по большому счету, есть книги корифеев — Коротко о главном. Новые возможности версии.

    Но мы в свободной стране, а любая статья это в любом случае труд автора.

    Было бы гораздо интереснее понять тенденцию развития интерфейса 1С, на мой взгляд.

    Плюсов бы точно было больше.

    Опять же на мой взгляд это попытка догнать HTML5 и в некотором роде гонка за собственным хвостом.

    Т.е. в обозримом будущем вернется возможность создавать привязки, push уведомления со стороны сервера и т.п.

    Reply
  23. Yashazz

    (20) Evil Beaver, он самый.

    Не хочу переходить на личности, но со времён мисты мало что изменилось… И дело даже не в уровне и подробности, не в раскрытии. Дело в подаче. Я, аз грешен, копался в различии между модальностью и синхронностью применительно к 1С, аки тупой кодер, и тоже не особо много понял; но презентовал иначе… И когда потом мне, кроме, в общем, понятных наездов, накидали полезного, я не спорил, а благодарил.

    (22) А вроде бы push от сервера уж обещали: http://v8.1c.ru/o7/201502push/index.htm

    Reply
  24. nSpirit2

    Подскажите а после перехода с 7.7 на 8 еще долго полыхало у людей кто помнит?

    Reply
  25. zero1

    (18) >> странно, что критикуя одну «дневничковую» запись, вы отсылаете к другой «Дневничковой» записи, на этот раз Нуралиева

    fixin, сравнил… Кто Нуралиев и кто ты… 🙂

    Reply
  26. capitan

    (23) Yashazz, немного не то, это для мобильной платформы

    Reply
  27. fixin

    (19) я предоставляю возможность выбора — хотите читайте блог Нуралиева, хотите читайте мою сжатую аналитику. Выбор — это хорошо.

    (20) да Фиксин = Гений1с

    (23) могу позволить себе поспорить, чай не Чайник 1С.

    (24) ХЗ, я сразу полюбил восьмерку за новые функции, особенно за SQL-подобный язык.

    (25) кто? ггг…. Нуралиев написал подобную моей статью, где было бы кратко разжевано? Нет, он не пишет аналитику, он штампует посты в блог. Они технически подробные, но разрозненные. Наслаждайтесь тем, что я Вам даю. Сам мечтал о такой статье, когда знал только 81. Надо спасибо мне говорить, а не плеваться.

    Reply
  28. kapustinag

    Да уж…

    Получилось типичное, к сожалению, развитие дискуссии — не в сторону предметного обсуждения тех вещей, с которыми не согласен, а на уровне «А ты кто такой?».

    Раскройте глаза! На Инфостарте море публикаций типа «Печатная форма NNNN для документа ДДДДД конфигурации КККК», которые интересны лишь автору плюс 1-2-5 человек, у кого все звезды сошлись. А дискуссионных, содержащих не только факты, но и суждения — кот наплакал.

    Я прочитал (0), и не считаю, что зря потратил время. Спасибо.

    Reply
  29. dgolovanov

    (28) kapustinag, +1

    Есть тут вполне определенный круг «эстетствующих …», которые думают, что статьи на сайте пишутся исключительно для них и если ИМ они не подошли — то статья не годная.

    Reply
  30. dj_serega

    За статью спасибо. Сам вначале не понимал что такое УФ.

    Как вызвать процедуру с модуля объекта?

    Как получить макет текущего объекта?

    и тд.

    Но потом разобрался и сейчас программирую только на УФ. Недавно ковырялся в 7.7, так там даже с ftp на уровне платформы нельзя работать… Опять же, можно накодить и будет работать через cmd но…

    Вообщем еще раз спасибо.

    (6) tormozit, как ответили в (4), ждем 8.3.7. Посмотрим как они доработают этот функционал.

    Reply
  31. NeviD
    В процедурах сервера при передаче параметров нужно использовать ЗНАЧ, чтобы параметр не передавался обратно на сервер.

    Подскажите, пожалуйста, это в каких ситуациях нужно использовать? Когда с клиента вызываем серверную процедуру?

    Имеет смысл во всех серверных процедурах, в которых параметры не изменяются, проставлять «Знач»?

    Reply
  32. Evil Beaver

    (23) Yashazz, ну тогда вопросов не имею))

    Наслаждайтесь тем, что я Вам даю.

    Вот тут регистр букв перепутан. «Я» надо было писать с большой, а «вам» — с маленькой )))

    Reply
  33. Новиков

    Автору спасибо. Время потратил не зря, хоть и прошелся по верхам. В очередной раз убеждаюсь, что БСП даже сами преподы не сильно жалуют, что не может не огорчать. Основные мифы-боязни об УФ раскрыл. Но могу только добавить, что скорее всего, знания, которые автор получил на курсе, ему пригодятся весьма опосредованно, т.к. насколько я помню, он работает в фране, а в оном как правило сопровождают и дорабатывают типовые конфигурации, в которых логика работы с управляемыми формами как таковыми вынесена в отдельные модули, коих тьма. И для быстрой решения той или иной задачи, полезно знать что и откуда дергать из типового функционала, нежели городить свою городуху. Но основы знать конечно нужно. В любом случае — автору удачи, и самое главное — чтобы полученные знания не смылись в унитаз, а были использованы в практической работе.

    Имеет смысл во всех серверных процедурах, в которых параметры не изменяются, проставлять «Знач»?

    Если при вызове сервера с клиента передавать параметры по значению, то получите выигрыш в производительности, равный времени передачи параметров с сервера на клиент. Но выдать какие-то рекомендации, связанные с тем, как передавать параметры в процедуры/функции весьма проблематично, т.к. это определяется логикой работы ВАШЕЙ конфигурации. Где-то нужно передавать параметры по ссылке, а где-то по значению. И до кучи, рекомендую прочитать немного путанную, но все таки официальную статью «Передача параметров по ссылке и по значению при вызове процедур и функций» на ИТС.

    Reply
  34. naf2000

    (31) NeviD, просто оставлю это здесь

    &НаСервереБезКонтекста
    Процедура КомандаНаСервере(Массив1,Массив2,Знач Массив3,Знач Массив4)
    Массив1.Очистить();
    Массив2 = Новый Массив();
    Массив3.Очистить();
    Массив4 = Новый Массив();
    КонецПроцедуры
    
    &НаКлиенте
    Процедура КомандаНаКлиенте(Массив1,Массив2,Знач Массив3,Знач Массив4)
    Массив1.Очистить();
    Массив2 = Новый Массив();
    Массив3.Очистить();
    Массив4 = Новый Массив();
    КонецПроцедуры
    
    &НаКлиенте
    Функция ФормируемМассив()
    М = Новый Массив();
    М.Добавить(«нечто»);
    Возврат М;
    КонецФункции
    
    &НаКлиенте
    Процедура СообщимМассив(Массив)
    
    Сообщить(«Количество = «+Массив.Количество());
    
    КонецПроцедуры
    
    &НаКлиенте
    Процедура Команда1(Команда)  //обработчик непосредственно команды
    Массив1 = ФормируемМассив();
    Массив2 = ФормируемМассив();
    Массив3 = ФормируемМассив();
    Массив4 = ФормируемМассив();
    КомандаНаСервере(Массив1,Массив2,Массив3,Массив4);
    СообщимМассив(Массив1); //0
    СообщимМассив(Массив2); //0
    СообщимМассив(Массив3); //0
    СообщимМассив(Массив4); //1
    Массив1 = ФормируемМассив();
    Массив2 = ФормируемМассив();
    Массив3 = ФормируемМассив();
    Массив4 = ФормируемМассив();
    КомандаНаКлиенте(Массив1,Массив2,Массив3,Массив4);
    СообщимМассив(Массив1); //0
    СообщимМассив(Массив2); //0
    СообщимМассив(Массив3); //1
    СообщимМассив(Массив4); //1
    КонецПроцедуры
    
    

    Показать

    Reply
  35. naf2000

    (33) Новиков, мое ИМХО: при передаче с клиента на сервер объектные данные передаются как их копии (баз ЗНАЧ — в обе стороны, со ЗНАЧ — в одну).

    «По ссылке» здесь не совсем применимо, если говорить об общепринятом смысле этого в C++/C#/Java/Delphi

    Reply
  36. Sashares

    (35) naf2000, это только ваше ИМХО, увы, не совсем верное, как оно в действительности происходит написано на ИТС. Название статьи уже дали.

    Reply
  37. Йожкин Кот

    Опоздал со статьей лет на 5

    Reply
  38. fixin

    (37) лучше поздно, чем никогда. я например, только начал изучать УФ, думаю таких последних из могикан немало.

    (31)(33) да, знач подразумевает, что значение не надо передавать обратно в клиента. Обычно ЗНАЧ не пишут из лени, какой то 0.0001% скорости это дает, а в некоторых случаях ЗНАЧ просто необходимо.

    (32) не буквоедствуйте, не люблю.

    Reply
  39. klinval
    Конечно же, это никоим образом не связано с тем, что браузеры испытывают сложности с показом модальных окон. Это заблуждение и предрассудок – забудьте его как дурной сон. Все логично.

    Преподаватели УЦ1 говорят одно, сами 1С-ники говорят пишут другое (см. ссылку). Если перейти по ссылке, то видно, что в теме «Зачем надо отказываться от модальности» пишут:

    Как правило «десктопные» браузеры лучше или хуже, но поддерживают модальные окна и открывают их в новом окне браузера как «всплывающее окно». Но из-за того, что технология всплывающих окон массово используется в Интернете для размещения рекламы, практически во всех браузерах стандартно отключен показ всплывающих окон. В подавляющем большинстве случаев без изменения этой настройки браузера работа веб-клиента становится невозможной.

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

    В такой ситуации вариант работы интерфейса 1С:Предприятия без использования модальных окон снимает все перечисленные выше проблемы.
    Reply
  40. klinval

    По вопросу асинхронности кода: допустим я открываю новую форму через ОткрытьФорму. Как выполняется код:

    1. Команда ОткрытьФорму

    2. ПриСозданииНаСервере и ПриОткрытии новой формы.

    3. Дальше выполняется код написанный программистом после ОткрытьФорму. Причём если этот код «долгий» то с вновь открытой формой вы не сможете работать пока весь код не выполнится.

    Т.е. другими словами код выполняется не параллельно, а последовательно. Т.е. как и раньше…

    Простенький пример: создаём обработку с 2 формами. При нажатии на кнопку происходит открытие 2 формы:

     ОткрытьФорму(«ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма2»,,ЭтаФорма,,,
    ,Новый ОписаниеОповещения(«ПослеЗакрытияФормы2»,ЭтотОбъект),);
    
    
    Индекс=9999999;
    Пока Индекс>0 Цикл
    Индекс = Индекс-1;
    КонецЦикла;
    

    Показать

    Со второй формой вы будете работать только когда выполнится долго играющий код после команды ОткрытьФорму.

    Reply
  41. fixin

    (39) это лажа, уважаемый. Потому что все окна типа ПоказатьВопрос вызываются с блокировкой интерфейса, т.е. браузеры тут не причем. 1с не отказалось от модальности, оно отказалось от заморозки выполнения кода, от цикла While () DoEvents Wend.

    (40) так параллельности никто и не обещал, перечитайте, что изменилось в вопросах модальности.

    Параллельно можно запустить через фоновые задания, в типовых так отчеты и запускаются, кстати.

    Reply
  42. klinval

    (41)

    (39) это лажа, уважаемый. Потому что все окна типа ПоказатьВопрос вызываются с блокировкой интерфейса, т.е. браузеры тут не причем. 1с не отказалось от модальности, оно отказалось от заморозки выполнения кода, от цикла While () DoEvents Wend.

    Я то уже давно понял, что новые НеМодальные вызовы вполне себе могут работать модально. То что новые «не модальные» могут быть (или некоторые являются) модальными ясно видно даже из СП. Но у вас почему то такая логическая цепочка: раз 1с-ники не отказались от модальных окон, значит новые методы (ПоказатьВопрос, ПоказатьПредупреждение и т.д.) созданы не ради браузеров.

    Вот тогда вам ещё ссылка. Там написано те-же причины отказа от модальности и теми же словами, что я приводил ссылкой выше. Но далее написано:

    Отказ от модальности снимает все вышеперечисленные проблемы и не влияет на функциональность программы. Окна по-прежнему блокируют весь рабочий процесс до закрытия или ввода данных. Просто эта функциональность реализована технологиями, которые не препятствуют работе через Интернет.

    Пользователю не нужно вносить изменения в стандартные настройки браузеров.

    Т.е. написано прямо: новые методы модальны по сути своей, но мы их сделали ради браузеров.

    По вопросу насколько модальные новые «не модальные» методы мы с вами солидарны, а вот по второй части спора «ради чего внедрили новые методы» я пожалуй с вами не соглашусь.

    Получается во всех официальных источниках прямо написано, что новые методы сделаны ради браузеров, но вы почему то категорично утверждаете, что внедрение новых методов абсолютно никак не связано с браузерами…

    Reply
  43. Yashazz

    (40), (42) — на тему модальности, асинхронности, как их путают и как 1С опять «по-своему» всё трактует — см. мою вышеупомянутую http://infostart.ru/public/302910/ — особливо ради комментариев. Вкратце: мутят они что-то с терминами и реальными причинами всех этих нововведений.

    Reply
  44. klinval

    (43) Yashazz, Полностью согласен, что термины 1С порой трактует по своему. Например:

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

    Если мы делаем рефакторинг в 1С понимание кода явно усложняется…

    Уже читал, не 100%, но по большой части согласен, лайкнул.

    Reply
  45. fixin

    (43) ответил там:Основная цель не отказ от модальности и не прогиб под браузера, а полный переход на событийность, чтобы не замораживать обработчики событий

    Reply
  46. Sashares

    (45)

    Основная цель не отказ от модальности и не прогиб под браузера

    Чушь.

    Отказ от модальности и асинхронность как раз из-за браузеров и реализовали.

    Собственно, это явно и говорится в статье на зазеркалье http://www.v8.1c.ru/o7/201301nm/

    Reply
  47. zero1

    (27) Нет, ну вы посмотрите… благодетель нашелся.

    Статейка, может, и хорошая, но только для чайников. Которые тоже для себя УФ только-только открыли, как и автор.

    Reply
  48. IDija

    Из всего прочитанного, дискуссия в комментариях больше увлекла чем статья. Наверное, потому что как уже сказали со статьей опоздали лет на 5…

    Reply
  49. fixin

    (46) мне препод лично говорил, что про браузер — это сказки. Да это и так понятно.

    Браузеры не позволяют программно открывать новые окна, только по ПКМ мыши — открыть в новом окне.

    так что функционал 1С в любом случае без настройки браузеров пахать не будет.

    Цель именно в прямом реагировании на события, чтобы не замораживать выполнение кода, следовательно ТК будет более просто реализовать, в том числе и в браузерах — полный переход на событийную модель. ОК?

    (47) я сам чайник и пишу для чайников и за это чайники мне благодарны.

    (48) ну что поделать, если УФ я изучаю только сейчас. А вот модальность появилась не так давно, вроде не 5 лет назад, да и Такси тоже новодел.

    Reply
  50. pricec

    и статья и комментарии демонстрируют что 1с уходит от программирования в настройки и галки.

    скоро никто не сможет за разумное время разбираться в коде типовых конфигураций.

    Останутся только обновленцы и консультанты,

    программистов 1с не будет.

    Reply
  51. fixin

    (50) не типовыми едиными жив мир 1С. 😉

    я же писал, например, что RLS на модификацию — это бред, не знаю, может его и юзают в типовых, но проще наложить свою систему ролей поверх типовых.

    Так и функциональные опции — может они кому и пригодятся, но проще их не юзать и использовать свои функции.

    Но вообще то да, код типовых становится все страшнее, запросы все монструознее. 😉 Но это не грех платформы, а грех типовописателей.

    Reply
  52. Sashares

    (49)

    мне препод лично говорил, что про браузер — это сказки. Да это и так понятно.

    Кому и что понятно? О_о

    Судя по вашему ответу, вам это как раз не понятно =)

    Я конечно рад за вашего препода. А аргументировать он не пытался?

    Браузеры не позволяют программно открывать новые окна, только по ПКМ мыши — открыть в новом окне.

    так что функционал 1С в любом случае без настройки браузеров пахать не будет.

    При чем тут настройка браузеров?

    Может кто не в курсе, но последние версии Хрома не поддерживают модальность. Фаерфокс тоже имеет аналогичные планы.

    Из-за отказа части браузеров от модальности в платформе реализовали эти навороты — отказ от модальности и асинхронность.

    Цель именно в прямом реагировании на события, чтобы не замораживать выполнение кода, следовательно ТК будет более просто реализовать, в том числе и в браузерах — полный переход на событийную модель.

    Цель — чтоб веб-клиент работал.

    В тонком/толстом клиенте все работает и без асинхронности и с модальными окнами. Причем реализация этого на много проще, чем заморочки с асинхронностью. Была 1 процедура в которой задали вопрос пользователю, получили ответ и закончили процедуру, а стало минимум 2 — в одной задали вопрос, а во второй обработали ответ.

    Reply
  53. fixin

    (52)

    если ход выполнения замораживается, то ТК (браузер) реализуется сложнее, чем полностью событийная модель. Вот аргумент.

    Модальность — это логика не браузера, а логика приложения, т.е. модальность реализует приложения, блокируя кнопки, пока не закрыто окно. В последних версиях 1С новое модальное окно отрисовывается не в новом окне браузера, а в текущем окне браузера.

    Еще раз докажу методом от противного — если прогибаться под браузер, то нужно отказываться от программного открытия новых окон, и работать в SDI, т.е. строго в одном окне. Потому что любое открытие нового окна в новой странице будет расцениваться как всплывающее окно. И при чем тут модальность?

    Reply
  54. Sashares

    (53)

    если ход выполнения замораживается, то ТК (браузер) реализуется сложнее, чем полностью событийная модель. Вот аргумент.

    Просьба пояснить, что вы этим хотите сказать.

    Модальность — это логика не браузера, а логика приложения, т.е. модальность реализует приложения, блокируя кнопки, пока не закрыто окно. В последних версиях 1С новое модальное окно отрисовывается не в новом окне браузера, а в текущем окне браузера.

    И?

    Еще раз докажу методом от противного — если прогибаться под браузер, то нужно отказываться от программного открытия новых окон, и работать в SDI, т.е. строго в одном окне. Потому что любое открытие нового окна в новой странице будет расцениваться как всплывающее окно.

    Не уловил, где доказательство?

    Естественно, что особенности работы веб-клиента накладывают ограничения. И если требуется, чтобы конфигурация работала в веб-клиенте, то при разработке надо это учитывать.

    Повторю еще раз, в Хроме отказались от модальности. Хотите убедиться, запустите какую-нибудь конфигурацию годовой давности на управляемых формах на Платформе 8.2.19 в Хроме. Работать нормально не будет (вообще никак не будет), где будут модальные вызовы.

    В 8.3.5 реализовали возможность «отказ от модальности» и «асинхронность», чтобы можно было разработать конфигурацию, которая бы работала любом веб-клиенте. Вот собственно и все. О чем тут спорить и зачем искать тайные мотивы этого механизма, я честно говоря не понимаю.

    Reply
  55. fixin

    (54) а что не понятного.

    В браузере происходит обработка событий. А обычная модальность от 1с подразумевает цикл while … doevents wend.

    Это реализовать сложнее чем полностью реагирование на события.

    Нуралиев пишет о запрете на открытия новых окон. Без новых окон приложение превращается в SDI, но 1С в браузере не работает как SDI, поэтому чхать оно хотело на открытие новых окон.

    А вы потрудитесь разобраться, почему Хром не работает в режиме модальности, например.

    Reply
  56. markers

    Сколько помню fixin, всегда был противником УФ и думалось что так и дальше будет.. Но что-то изменилось, и я рад что ты нашел много интересного и полезного в УФ, «познал дзен» так сказать. Лично мне больше всего нравится в УФ, так это раздельная модель управления, за «поехать» сервер отвечает, а за «шашечки» клиент. Что прежде всего убило начисто узкое место в Толстом клиенте, когда нужен был для него или комп по мощней, сеть по толще или вообще работать через сервер терминалов. А УФ можно запускать даже на калькуляторе (я конечно же утрирую, но всё-же).

    Единственно что меня несколько печалит в последних версиях 1С, что у конфигуратора очень сильно течет память, отжирать 1,5 гига памяти, это уж чересчур.

    За статью кстати спасибо, весьма интересная, хорошее изложение!

    Удачи!

    Reply
  57. dj_serega

    (56) markers, У меня в + к «поехали» за «шашечками» это еще и:

    — редактирование интерфейса под себя (рабочий стол, реквизиты на форме: видимость и расположение).

    — при изменении видимости элементов, другие элементы сдвигаются, и визуально не скажешь что реквизит закрыт правами (идея я думаю понятна).

    Reply
  58. fixin

    (57) по сдвиг при изменении видимости ок, про настройку «под себя» иногда это бывает головной болью, но, к счастью, отключается. Все же чаще у пользователей форма должна быть однообразной и штатной, без персональных извращений (настроек).

    Reply
  59. Aleksandtmt

    Очень интересно знать, что автор поменял свое мнение об УФ. Как я понял, главная причина – курсы, а остальное как-то размыто.

    Сама идея УФ прогрессивна и ее появление обусловлена требованиями времени.

    Возможно УФ могут улучшить быстродействие системы при наличии сервера 1С, но большая часть пользователей работает в файловом режиме и в данном случае кроме «красоты» ни какой пользы !!!

    Reply
  60. mars207

    В свое время практические все писал на упр формах. Перешел в компанию где конфигурация работает в толстом клиенте обычного приложения. Поначалу создавал формы списка на упр формах. Но со временем заменил их на старые добрые обычные формы, так как динамические списки тормозили жутко даже на маленьких объемах. Также, если в форме документа присутствует дерево значений, открытие этой формы занимает больше времени чем такая же обычная форма. Упр формы помогли когда пришлось некоторые вещи вынести в веб интерфейс. Но это уже другая история. Вывод не всегда упр формы это хорошо, и пока на старых конфигурациях без обычных форм не обойтись.

    Reply
  61. truba

    (55) а не пытаетесь ли вы в этом вопросе побыть святее Папы Римского? 😉 Завтра в браузерах снова появится модальность и 1С с удовольствием туда нырнет, а у Вас затруднительное положение образуется…

    Я бы с большим удовольствием принял бы Вашу точку зрения, но с этим переходом заметил что в логике программирования даже код мат-части не всегда то в типовых выделен в отдельное закрытое ядро, что в общем то показывает разницу между уровнем систематизации разработчиков и уровнем, к примеру, Вашей собственной систематизации. 1С, к сожалению, не реализует наши мечты, оно решает свои собственные проблемы как умеет, еще раз к сожалению.

    Reply
  62. dj_serega

    (58)

    Все же чаще у пользователей форма должна быть однообразной и штатной, без персональных извращений (настроек)

    1. Вот взять к примеру Итилиум. У обычного «смертного» там есть больше десятка реквизитов, которые закрыты или не используются и никогда не будут использоваться. В связи с этим форма ОЧЕНЬ и ОЧЕНЬ нагроможденная. Для себя, я больше половины реквизитов удалил. Туда же и половина страниц. Теперь у меня там только то что нужно.

    2 Я часто вывожу рядом с реквизитами типа Контрагент, Номенклатура их доп поля (Код, ЕДРПОУ и тд). А это существенно облегчает жизнь 😉

    Поэтому с этим утверждением согласен 50/50.

    Reply
  63. fixin

    (62) речь не о продвинутых пользователях, а о типовых.

    Reply
  64. Yashazz

    (28) kapustinag,

    На Инфостарте море публикаций типа «Печатная форма NNNN для документа ДДДДД конфигурации КККК», которые интересны лишь автору плюс 1-2-5 человек, у кого все звезды сошлись. А дискуссионных, содержащих не только факты, но и суждения — кот наплакал.

    А вы, батенька, за всех-то не судите. Инфостарт — он не только для разработчиков, админов и программеров. Эти самые «печатные формы» — существенная часть рынка для бухов, менеджеров, простых юзверей. Им это позарез надо. И я вас уверяю, там далеко не 1-2-5 человек бывает. Просто по плюсам это видно не всегда — лично знаю многих, кто качал и не плюсил.

    Вам бы, вместо того, чтоб походя обгадить эти рядовые публикации, сказать им спасибо, они повышают популярность и прибыль ресурса в кругах заказчиков, не то что пустопорожний «дискуссионный» трёп. И сказать спасибо их авторам, которые, практически не имея рейтинга, продолжают трудиться и публиковаться.

    Данная статья практически не содержит полезных фактов. Новичку по ней не научиться (максимум — составить общее впечатление, но это лучше на сайте 1С делать), для профи она бесполезна. Если есть желание пофлеймить в духе «авотчоуменябыло», так есть форум, но уж всяко не стоит, имхо, позиционировать это как «статью», да ещё и не в Life.

    Reply
  65. nixel

    fixin, вы постоянно путаете теплое с мягким.

    блокировка кнопочек/окон/чего бы то не было — это не модальность, это блокировка интерфейса.

    модальность — это именно остановка выполнения кода из-за ожидания ответа пользователя при интерактивной работе — вопрос, предупреждение и прочее.

    ПоказатьВопрос, НачатьПомещениеФайла и прочие асинхронные процедуры НЕ модальные, т.к. их вызов не останавливает выполнение процедуры, а просто открывает окно, которое при необходимости блокирует интерфейс.

    Вопрос и ПоместитьФайл же модальные, потому что помимо блокировки интерфейса так же останавливается код.

    Reply
  66. fixin

    (64) что опять? это я про «не содержит полезных фактов», гыгыгы… вроде уже комментаторы выше такие факты нашли. А насчет собственных настроек считаю что их делают тогда, когда у программы затыки с функциональностью и юзверям приходится преодолевать самостоятельно.

    Вот у меня знакомый менеджер сделал через групповую обработку документов групповую выписку и проведение с печатью пачек документов. Так это потому, что такой функционал не был заложен в решении, иначе бы стал он напрягаться? то же и с формами. Когда разработчики не додумывают, что нужно пользователю, он расчехляет «ручки».

    (65) я не путаю. я как раз и говорю о разнице между модальными окнами и остановкой кода. как то так.

    Reply
  67. logarifm

    Я бы вообще это статьей не назвал, — этому место в блоге.

    Reply
  68. fixin

    (67) не вы такой один, но я уже писал, что за такую статью бы пивом бы проставился, если бы ее кто написал. Как говорится, найдите статью лучше на тему краткой аннотации по управляемому интерфейсу, потом ворчите.

    Под капотом УФ — это про УФ, а про сам интерфейс где? Сколько раз я спрашивал, чем отличается Такси от 82, что такое модальность — никто не отвечал, отправляли искать в горе документации. А тут все разжевано, только кушайте.

    Reply
  69. fixin

    (69)(70) вы бы еще ЖКК предложили. Разницу между аннотацией и документацией осознаете?

    Reply
  70. rozer

    (34) все немного не так )

    //КомандаНаСервере

    Количество = 0

    Количество = 0

    Количество = 1

    Количество = 1

    //КомандаНаКлиенте

    Количество = 0

    Количество = 0

    Количество = 0

    Количество = 1

    и читаем до полного просветления…

    для случая «КомандаНаКлиенте»

    http://its.1c.ru/db/metod8dev#content:2606:hdoc:_top:%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B0%20%D0%BF%D0­%BE%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5%20%D0%B7%D0%BD%D0­%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8E

    http://its.1c.ru/db/v83doc#bookmark:dev:TI000000152

    для случая «КомандаНаСервере»

    http://its.1c.ru/db/v83doc#bookmark:dev:TI000000153

    Reply
  71. bonv
    В конфигурации есть возможность отключить все синхронные вызовы (они будут вызывать ошибку), в итоге она будет полностью асинхронна и соответствовать последним требованиям организации событийной модели.

    Учить матчасть!

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

    ,

    Каким образом это связано с производительностью?

    Также, например, в платформе невозможно сделать поле ввода в ячейке динамического списка, если источником является не базовая таблица. Не потому что это технически сложно, а из соображений usability.

    Поле ввода в динамическом списке нельзя сделать ни в каких случаях!

    Общие реквизиты – не путать их с общими реквизитами в 1С7, в 82 они используются для разделения доступа в интерфейсе.

    В режиме 7.7 их тоже ничто не мешает использовать.

    я четко уяснил для себя нюансы модальности

    Похоже что не очень

    В общем то не стоит подавать материал, в котором еще сами то толком не разобрались в такой утвердительной форме.

    Reply
  72. bonv
    Типовые стали очень сложными, их затруднительно изменять. Опять же не из-за сложности платформы, а из-за неправильной организации типовых.

    Ну так вперед в 1С и покажите как надо, а то мужики то не знают)

    Reply
  73. fixin

    (73) в чем я не разобрался, я не пишу в утвердительном тоне.

    (74) В 1С мало платят, я туда как-то ходил на собеседование(в отдел УТ)

    Reply
  74. bonv

    (75) как минимум в (73) есть список чему стоит уделить внимание.

    А сколько это мало для Вас? Сколько нормально?

    Reply
  75. Sashares

    (75) в любой фирме оплата зависит от квалификации.

    Если вы только сейчас познакомились с управляемыми формами, многих тыщ однозначно не стоит ожидать.

    Reply
  76. puh

    Судя потому, что мелкомягкие в Win 10 возвращают кнопку Пуск, как это было в Win7, 1С должна будет понять что УФ нужны 5% пользователей и развивать эту ветвь интерфейса надо в интернет-ориентированных конфигурациях, а не в БП или УТ, которые в 90% случаев работают в рамках локальной сети.

    Reply
  77. fixin

    (77) с чего бы это? Не переоценивайте значимость УФ, многие работают еще на обычных формах, а УФ не так сложны, как кажутся.

    (78) ага, как бы не так. УФ по-своему вкусы. Вот даже в 8.1 иногда нужно было разделять код для сервера и клиента и ничего, справлялись же. Тут то же самое, ничего сложного, в принципе для опытного 1сника.

    Reply
  78. Sashares

    (79)

    многие работают еще на обычных формах

    А кто с этим спорит.

    Вот только в 1С почти все типовые конфигурации на управляемых, в том числе УТ. Поэтому тут вы недооцениваете значимость управляемых форм.

    Reply
  79. klinval

    (77) Sashares,

    (75) в любой фирме оплата зависит от квалификации.

    Вы забыли написать «в любой нормальной» фирме… Есть руководители, которые принципиально будут ставить з/п администратору и программисту на уровне уборщицы, аргументируя «А что он мне разве прибыль приносит?». Ну и идут в такие фирмы либо новички подучиться или от безысходности (в маленьких городах не всегда есть выбор), или соответствующего уровня «программисты».

    По поводу зарплаты в 1С слышал от бывшего коллеги, что у него подруга туда пошла. Говорит подруга как программист очень даже высокого уровня. Устроилась в 1С на маленькую з/п думала, что её оценят и после испытательного поднимут. Во-первых ей не понравилось как всё организовано (точнее не организованно) в её отделе, во-вторых когда она попросила побольше з/п ей прямо сказали: «ТЫ РАБОТАЕШЬ В 1С!!! Мы даём маленькую зарплату, потому что тебя после такой записи в трудовой куда угодно возьмут.»

    Reply
  80. Sashares

    (81) klinval,

    Вы забыли написать «в любой нормальной» фирме…

    Ну это само собой =)

    Сейчас вакансий Программист 1С очень много, поэтому если квалифицированному специалисту ставят зарплату уборщицы, то всегда можно найти другую фирму. Но конечно в жизни всякое бывает.

    По поводу зарплаты в 1С слышал от бывшего коллеги, что у него подруга туда пошла.

    Спорить не буду, возможно бывает и такое.

    ИМХО, в 1С как минимум будет интересно работать, т.к. все новое (касательно 1С) появляется в первую очередь там =)

    А руководители разные бывают…

    Вдруг кому интересно http://1c.ru/rus/firm1c/vacan/index.jsp =)

    Reply
  81. kser87

    «В свое время я доказал, что RLS на изменение уступает программному контролю записи на уровне модуля объекта/подписки. »

    Интересно почитать ваши доказательства. Можете дать ссылку?

    Reply
  82. fixin

    (83) ссылки не нашел, но логика такая, что при изменении что запрос RLS что алгоритм работают с одним объектом. Запрос — ограниченный механизм, алгоритм — универсальный механизм. Поэтому преимущества в использовании RLS на изменение нет.

    А вот RLS на чтение работают с таблицами, там альтернативы нет.

    Reply
  83. fixin

    (80) я сталкиваюсь с УФ в УТ11 и БП30, почему-то проблем с пониманием конфигураций и их логики после работы с УТ10 и БП2 не испытываю. Это вы переоцениваете сложность изучения УФ для профессионала.

    Reply
  84. Sashares

    (85) речь не о сложности изучения УФ, я такого не говорил. Хотя вы недооцениваете различия))

    Речь о важности знания УФ, клиент-серверного взаимодействия, возможности разработки для тонкого и веб-клиента и всего остального, что с этим связано.

    То есть это достаточно большая область знаний.

    Если после изучения всего этого и некоторой практики, вы еще раз сходите на собеседование в 1С, ИМХО, предложенная оплата будет выше, чем раньше.

    Reply
  85. Angstrem13

    Спасибо за статью, всё подробно написано!

    Reply
  86. fixin

    (86) да ладно? гггг….. зарплата зависит немного от других факторов. Прокачать УФ можно и за 2 недели, пока перенимаешь дела. Для спеца по 81 это не сложно.

    Reply
  87. Templ

    Большое спасибо за интересную статью. Будет очень полезна для начинающих. А что за курс был УЦ 1?

    Reply
  88. fixin

    (89) «разработка управляемого интерфейса, интерфейс такси». будет повторяться еще. а также у них есть хороший клиент-серверное программирование этого же препода.

    Reply
  89. Созинов

    Автору плюс, интересно и познавательно для новичков. Было интересно освежить для чего их создавали.

    Reply
  90. karpik666

    Плюсующим, есть бесплатные курсы по обычным и управляемым формам, курсы, там гораздо больше описывается про нюансы. А если не хватит, то еще посмотрите «быстрый старт в профессию», тоже вроде был бесплатным. В общем, если вы не «большинство», как пишет автор статьи, то все поймете.

    Reply
  91. kser87

    (84) идея понятна, но все же сомнительна. Алгоритм придется присобачивать везде, где нужны ограничения (например, во всяких рабочих местах и АРМах). А для РЛС достаточно будет поставить слово «РАЗРЕШЕННЫЕ»

    Reply
  92. fixin

    (94) идею вы не поняли, коллега. Как раз разрешенные — это для RLS на чтение.

    А вот RLS на изменение реализуется более универсально в подписке на события изменения — не только на языке запросов, но и полноценно, на алгоритмическом языке. Еще раз вникните в мое описание.

    Reply
  93. AlexO

    (38)

    а в некоторых случаях ЗНАЧ просто необходимо.

    В каких?

    (4) Diversus,

    Это признает сама 1С и 8.3.7 будет предложен новый механизм размещения элементов на форме

    Как я и предрекал, 1С верна себе, и УФ скоро пойдет на помойку.

    Новый МРЭ — наверняка будет абсолютно несовместим со «старыми» УФ 8.2-8.3 как в конфигурации, так и по платформе.

    Reply
  94. AlexO

    (23) Yashazz,

    Я, аз грешен, копался в различии между модальностью и синхронностью применительно к 1С, аки тупой кодер, и тоже не особо много понял

    А при чем тут модальность и ассинхронность? Модальность просто запретили, а ассинхронность — не реализовали вовсе, потому что «теперь вместо модальных окон просто используйте отдельную функцию БЕЗ ФУНКЦИОНАЛЬНОГО КОДА» — это не ассинхронность, даже не подделка, а неуклюжая попытка сделать хорошую мину при отказе от модальности.

    (95)

    А вот RLS на изменение реализуется более универсально в подписке на события изменения — не только на языке запросов, но и полноценно, на алгоритмическом языке.

    Это каким таким образом RLS вдруг стал в алгоритмическом коде реализовываться?

    (0)

    Имеет смысл во всех серверных процедурах, в которых параметры не изменяются, проставлять «Знач»?

    Рекомендую все-таки разобраться с вопросом в комментах к По ссылке или по значению? Ключевое слово Знач и с чем его едят (т.к. статья совершенно неверно освещает данный вопрос).

    (33) Новиков,

    Где-то нужно передавать параметры по ссылке, а где-то по значению.

    И получите «дулю» от 1С при передаче еённых псевдообъектов. Потому что не знаете, что реально происходит у 1С в этом случае.

    И до кучи, рекомендую прочитать немного путанную, но все таки официальную статью «Передача параметров по ссылке и по значению при вызове процедур и функций» на ИТС.

    Тоже разберитесь сначала с данным вопросом, все есть по ссылке в комментариях. 1С вообще не освещает конкрентику с передачей/присваиванием собственных псевдообектов.

    Почему? Как я обычно отвечаю на данный вопрос — либо не знает сама, как у неё все работает на уровне платформы, либо не понимает и не видит всей картины в целом.

    Reply
  95. fixin

    (97) RLS на изменение легко заменяется подпиской на изменение. Что я сказал не так?

    (98) статья не для вас писана, а для новичков.

    Reply
  96. AlexO

    (99)

    RLS на изменение легко заменяется подпиской на изменение

    А вот и нет. На регистры — подписки только на получение формы.

    RLS — ну никак не заменяется подписками.

    Reply
  97. fixin

    (100) что курим, Алекс? Изучите картинку, плиз.

    Еще раз для военных — RLS на изменение бесполезно, оно более качественно заменяются подписками на событие.

    RLS на чтение алтернативы нет.

    Reply
  98. AlexanderKai

    (19) TODD22,

    А как он должен найти вашу статью?

    Я же как то нашёл. И не я один.

    Поиск на ИТС просто никакой.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *