<?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='\
Возможно, это понятно только избранным и просвященным, но за такое:
Добавление поля ввода на обычную форму
Если просто добавить поле ввода ссылочного типа, то не будет работать кнопка выбора. Как эту проблему решить, пока не понятно, поэтому надо добавлять реквизит формы вручную.
Показать
руки бы отрывал, не взирая ни на чины и ни на ранги!
А если еще кнопочек потребуется, будете дальше высчитывать Ш,В и т.п.?
Столкнулся, что более 30 таких писуляк понадобавляли на форму! жесть, изуродовали форму документа!
(0) Для конфигураций на основе БСП забыли упомянуть модули МодификацияКонфигурацииХХХХПереопределяемый. Если они присутствуют в конфе, то именно в них надо добавлять свои элементы и реквизиты формы.
Грамотное обновление 1С:
п.0 Перед обновлением сделайте бэкап.
(3) дада, но это должно быть в ДНК, статья в общемто не об этом, но добавлю. 😉
(2) да, сталкивался с такой шнягой, но что забавно, даже в конфигурациях на бсп они прописаны не для всех документов почему-то. бардачок.
(1) добавили вручную или кодом? если кодом, то все норм, почему бы и нет. или ты предпочитаешь при каждом обновлении руками рисовать? Код надежнее.
Как поступаешь с полным планом обмена, когда в конфигурацию добавлены собственные объекты?
Программное добавление элементов на обычную форму:
— если решили программно добавлять элементы формы, которые ранее были на форме в явном виде. Проще всего использовать обработки типа ДекомпиляцияИАнализФорм (их там несколько с схожим функционалом).
— необходим контроль за этой формой. Иначе возможна ситуация — добавили вы свой элемент, а через некоторое время в типовой конфигурации добавили свой элемент и именно на ЭТО ЖЕ МЕСТО. В итоге один из элементов будет перекрыт и его будет не видно.
Добавление внешнего отчета:
— иногда вносятся небольшие изменения в стандартный отчет (например в шапку). И возникает идея не править стандартный, а создать внешний отчет где будут сделаны нужные изменения. В итоге и стандартный не изменили и то что нужно имеем. Возможна следующая грабля — при очередном обновлении типовой конфигрурации стандартный отчет изменяется. А в наш (переделанный) отчет эти изменения автоматом не встанут. И могут возникнуть существенные расхождения между типовым отчетом и нашим.
(5) копирую план обмена. 😉
(6) ну про внешний отчет это известная тема, но можно отразить для общности, да, внесу.
Что касается декомпиляции, это да, но из пушки по воробьям, обычно добавляется один-два реквизита.
Думаю, если нужно больше, надо нарисовать отдельную форму и написать код, который будет эту форму вставлять в заданную область (аналог декомпиляции, или вложенная форма). Так надежнее и визуальнее.
А как же расширения для управляемых форм?
Может, Грамотная доработка 1С ?
Благодарю, полезный мануал.
Fixin — как всегда молодцА!
Это прежде всего касается подписок на события, когда при добавлении своего документа, например в БП 3.0, его нужно прописывать в десяток подписок, что с вероятностью 99% слетит при очередном обновлении. С подписками проще — там только состав объектов и ссылка на процедуру, которую можно не контролировать. Сам не сразу догадался)
(7) копируешь, а дальше как?
При каждом обновлении типового плана сравнивать его со своим скопированным? Это гемор еще тот
(13) а что, там серьезные изменения? гггг….
Ну напиши обработку, чтобы проверяла, что все объекты регистрируются и свой код, который убирает то, что отправляться не должно, фигня вопрос.
(10)(11)(12) я работаю для Вас! 😉
(9) еще не смотрел, как бы не оказалось таким же мертворожденным дитяткой, как бызнес-процессы
(14) просвети. Дополни статью планами обмена
(15) что именно не понятно? Полный ПО используешь для риб?
Кстати, как вариант, еще можно снять полный ПО с поддержки. Тогда идентификатор вида ПО останется прежним и не будет затираться обновлениями от 1с.
Не освещена тема использования внешних программ для объединения модулей. Их использование позволяет существенно ускорить процесс обновления.
(17) это тема отдельной статьи, имхо, сложно выбрать инструмент, вьехать и т.п. но ок, добавлю ваше замечание, что существуют внешние инструменты.
По мне так можно еще включить мою старую добрую обработку «Парсер», которая парсит модули и добавляет вызовы функций.
(2) Поручик, Забывают разработчики вставлять вызов во все формы
(14) ну для кого мертворожденные, а для кого и инструмент. Я, например, в свое время очень много что на них (бизнес-процессах и задачах) делал. Очень удобная штука.
Лет 5 назад еще норм статья, сейчас все на БСП и управляемых формах. Не описана работа с предопределенными данными. В целом статья для тех кто только начинает рабоать, много букв и ни о чем
(7)Какой то странный метод…как потом риб делать?
Расширения — не не слышал…
(21) я как раз про управляемые формы и писал. а что не так с предопределенными данными, ггыгыгы, там все просто и тупо объединяется.
(22) риб делается как обычно. Расширения не щупал, но там 1с, как обычно, сделала наверно, криво (подозреваю). хотя могу ошибаться. Читал их статью про эти плагины.
(19) Кстати да, причем БСП будет использоваться не во всех конфигурациях, типа считают что спорный подход и надо продвигать плагины (расширения).
(20) это как RLS в правах на изменение. Не эффективно. Главный недостаток БП — то что схему можно рисовать только в конфигураторе, а не на прикладном уровне.
(23) на прикладном уровне, поверь, тоже можно. Но не всем дано )))
(24) молодец, раз нашел нетиповые возможности. но в типовом виде БП — унылый кал
(25) да в большинстве случаев описание схемы в конфигураторе уже достаточно для описания процесса и извлечения пользы.
(26) ложь. Найди тут штук 3-4 разработки, которые позволяют рисовать БП в прикладном режиме. Почему-то они сделаны не на бизнес процессах. Ключевое слово для поиска «Бизнес-процессы». Кстати они платные 20-50 тысяч продаются. Подумай почему убогих БП от 1С недостаточно, раз люди готовы платить такие бабки.
(27) я на базе бизнес-процессов и задач делал достаточно много всяких полезняшек. Схемы в них — далеко не главное, хотя, конечно, красивое, Например, интеграцию с DHL, когда заявка на доставку создается пользователем, потом утверждается руководителем, потом акцептируется сотрудником службы доставки. После этого в другом бизнес-процессе происходит подтягивание заявок и передача их провайдеру, осуществляющему услуги доставки. Потом автоматически заявки в том самом порядке, в котором их обработал специалист службы доставки, выплевываются из принтера по карточке сотрудника. После того, как заявка акцептируется провайдером, пользователь оповещается о выполнении. С бизнес-процессами и задачами это было сделать очень легко и просто. А т.к. задача для всех бизнес-процессов — это один объект, то он прекрасно может жить в списке задач пользователя, которые пользователь должен выполнить и которые двигают процесс по схеме. Тут как раз тот самый системных подход, о котором все говорят, но никто толком не знает, что это такое.
(28) чувак, ну что ты мне сказки рассказываешь? Сила БП в точках процесса. Без них список задач можно было в справочнике хранить (вместо объекта задача) и все. Но вот эти точки как раз можно добавить только в конфигураторе.
Чуть родился новый пункт обхода — надо менять схему.
Можно конечно делать виртуальные схемы, которые предусматривают добавление новых участков. Но тогда мы отходим от простоты схемы БП.
Короче 1с задумало гору, а родила мышь.
(0) увидел Вашу статью и опять — негативное отношение. Ничего личного. Негатив — в плане изложения материала. Надо (нужно) сделать так! А кто Вам сказал, что надо и нужно делать так, как это делаете Вы? Может быть, Вы рекомендуете так сделать? Разные понятия, согласитесь. Одно — обязывает, другое — предлагает использовать предложенное решение. Ведь подход к программированию у каждого свой. Вы же навязываете свои решения, практически подталкивая программиста следовать им! К тому же, среди на самом деле полезных советов, я например не увидел даже слово «подсистема». Они, как я полагаю, и предназначены для того, чтобы группировать программный функционал в зависимости от степени его назначения. Я свой новый функционал — созданные объекты конфигурации , общие модули, документы, справочники и т. д. рекомендую объединять в отдельную подсистему. По моему опыту, это сильно упрощает процесс обновления конфигураций.
(29) кому как. Мне лично нравится. Но тем, кто постоянно все переписывает и переделывает из-за недостатка архитектурного системного мышления с этим трудно. Мне это сложно понять, но, полагаю, таких «мастеров» полно.
(31) молодец, ты единственный Гений, который понял задумку 1с, гыгыгы.
Остальные — неучи. Будем благодарны тебе, если в статье раскажешь как нам правильно юзать БП.
А то люди платят разработчикам систем, где можно юзать справочники и регистры для БП по 20-50, а тут самородок нашел способ использования типовых БП… Гений, че…
(30) много воды, что хотели сказать не понятно, о каком негативе идет речь? У меня сугубо практические выкладки, которые экономят время обновления. Будь они написаны хоть матом, я бы с удовольствием почитал, ибо время — деньги. Опыт выстрадан на собственной шкуре, я уверен что так и НАДО делать. Ну не ручками же управляемые формы в типовых конфах править. И кстати, приведите примеры, как использование подсистем упрощает обновление конфигураций.
(32) перечитайте комментарии к своей статье «Как грамотно составить резюме». Может, и поймете, что я имел ввиду. А по поводу подсистем: в 1С:Предприятия и обновления конфигураций — изучайте мат. часть. Там можно фильтр установить и при обновлении к Вашей подсистеме обновления не применятся.
(32) да я всегда знал, что некоторым танцорам ботинки жмут — бывает. А какие-то там неизвестные разработчики, которым платят неизвестные конторы за неизвестные БП, которые якобы невозможно написать на стандартном механизме — совсем неубедительно звучит.
Можно использовать обычные элементы вместо предопределенных.
Для того, чтобы не было конфликтов кодов, лучше давать им префикс, например код задавать в виде «ПЭ-XXXX».
Лучше использовать предопределенные и обращение по имени, чем в модулях будет написано НайтиПоКоду()
И тем более лучше не менять правила установки кодов, думаю всем понятно с каким кодом будет создан след.объект после добавления вашего «ПЭ-XXXX».
Если просто добавить новый отчет, то могут быть проблемы с ролями, хотя обычно проблем нет
Поэтому нужно добавить отчет в справочник дополнительных внешних обработок.
Правильно, поэтому добавляем также новые роли, которые регулируют доступы на добавленные объекты
Справочник внешних обработок лучше только в случае отчетов серии сделал и забыл, иначе потом получаем неудобства сопровождения
Нужно организовать перебор колонок списка и вставлять свои колонки после типовых.
Зачем перебор-то делать:
лпИндекс = лпКолонки.Индекс(лпКолонки.Цена);
или
лпИндекс = лпКолонки.Индекс(лпКолонки.Найти(«Картинка»)) ;
Если просто добавить поле ввода ссылочного типа
Подправьте, это касается полей не связанных с реквизитами
Нужно сравнить конфигурацию базы с конфигурацией поставщика. Если конфигурации поставщика нет, значит конфигурация полностью типовая.
Или какой-то олень ее удалил 🙂
Конфигурация полностью типовая, если не включена возможность изменений (проверять надо в меню Конфигурация — Поддержка — Настройка поддержки)
НЕЛЬЗЯ (!) делать обновление через пункт сравнение-объединение, таким образом не обновляется Конфигурация поставщика
Режим лучше использовать «Взять из файла», только так форма получится гарантировано идентичной обновлению.
Для обоюдно измененных модулей использовать Индивидуальную настройку
(35) BlaSo, ОООООООЙЙЙЙЙЙЙ, как всё запущено)))))
У вас, уважаемый, принцип — без меня всем писец?
(36) Alex_E, нет)
Написал свои комментарии, принимать их во внимание или нет — решать автору)
(37) BlaSo, Это понятно, но в
Режим лучше использовать «Взять из файла», только так форма получится гарантировано идентичной обновлению.
Для обоюдно измененных модулей использовать Индивидуальную настройку
сразу видится или махровый клюшечник, или…одно из двух…
взять из файла — то песня…
Если я скажу НЕЛЬЗЯ делать обновление продакшп никак, кроме как через обновление, и как готовится это обновление можно почитать…это тоже можно не принимать во внимание)))
(34) ну зато ваша гениальная нетленка, которую никто не видел, звучит еще менее убедительно. гыгыгы. Я говорю о выявленных недостатках и называю их, вы говорите о выявленных вами достоинствах, не называя их. Играли бы мы в преферанс, быть бы вам уже битым канделябрами.
(33) но о том, что вашу подсистему обновлять не надо, знаете только вы, не так ли? а вот механизм «снятия с поддержки» гарантированно защищает объект от изменений. Не убедили.
(35) и какой же элемент будет создан после ПЭ-???? как раз ПЭ защищает от включения в общую систему нумерации.
Про отчеты не согласен, как раз справочник внешних — в 90% случаях идеальное решение.
Про перебор принимается, но это не особо принципиально.
А как можно удалить конфигурацию поставщика? ггггг… Снять с поддержки? Это будет заметно. И чрезвычайно маловероятно.
Имелось ввиду окно сравнения-объединения объектов, а не режим сравнения-объединения конфигураций.
(39) о, кто-то захотел со своим здоровьем канделябром )))) Ну-ну, поглядел бы я на Вас поближе ))) А то, что ботинки жмут — ну так или разнашивать надо, или сменить. Помните, как в одном замечательном подростковом фильме Брюс Ли учил молодого парня постоять за себя? Там было про то, что в полный стакан сложно что-то налить. Это про Вас.
ЗЫ: Кстати, слово «Вы» культурные животные с большой буквы пишут, если, конечно, это не обращение к массам. Но вроде тут кроме меня никто про БП ничего не писал.
(40) буду благодарен если вы принесете хоть немного полезной информации по 1с в нашу беседу.
(41) смотря что считать полезной информацией. У нас с Вами два мнения: кто-то считает, что БП — штука недоработанная, т.к. нельзя ее менять в ходе эксплуатации механизма, не влезая в конфигурацию; кто-то другой думает иначе и считает, что нет никаких препятствий реализовать подобное поведения по типу допреквизитов документов. Да, схема сама по себе не «перерисуется», конечно, но ведь не в схемах дело, а в процессе, который управляет движением задачи от одного исполнителя или группы исполнителей другому (или другой группе). В этом и есть основной смысл БП.
(42) почему статичная схема неудачна, я высказался. Если хотите аргументированно спорить, объясните, как вы используете статичные схемы для изменяемых пользователем процессов. Создаете библиотеку шаблонов вложенных БП? ну так это криво и нелогично для пользователя.
Потому люди и пишут платные разработки по БП, что механизм от 1с неудобен пользователю.
Сама доработанная программа в мире — это тетрис. У 1С, Навиджена. Сапа пока не наблюдается ни одного решения, которое не нуждается в обновлениях или настройках)))))
(43) т.е. Вы считаете, что допреквизиты в справочниках и документах — это нелогично? Тогда чем они лучше БП, если для их изменения логично лишь лезть в конфигуратор?
По поводу БП, то это лайфцикл задачи. Он может меняться, но эффективность бизнеса так или иначе завязана именно на процесс. Если Вы не знаете, то весь бизнес в плане производственной деятельности завязан на балансе из компетенции, мотивации и процессов — что поделать… Чем выше уровень процессов, тем менее квалифицированный нужен персонал для решения задач. Чем выше мотивация, тем больше времени готов тратить персонал на решение бизнес-задач, что может компенсировать недоработанность бизнес-процессов. Ну и высокий профессионализм позволяет сотрудникам и «без всяких процессов» решать задачи, но где эти золотые люди в массовом количестве.
Т.е. у Вас просто нет понимания, зачем нужны эти самые процессы. Из этого и исходит Ваш неверный вывод о том, что статичность процесса является его узким местом. Для меня же ни статичность процесса, ни статичность задачи узким местом не являются, т.к. изменение процесса так или иначе меняет поведение оного, что вполне обосновывает изменение схемы процесса в конфигураторе (и все!), после чего задачи начинают двигаться другой дорогой. Т.е. меняется лишь схема — никакой реструктуризации, никакой доработки. Но, повторюсь, это можно сделать и через механизм допреквизитов (дополнительных точек маршрута с логикой, описанной в справочнике/регистре/табличной части). Но это мне лично ни разу не пригодилось.
(38) Alex_E,
Ха-ха, с клюшками я в принципе не работаю.
Объясняю почему нельзя обновляться в обход механизма стандартного обновления:
Все банально просто, если вы не обновите Конфигурацию поставщика, то фактически исчезает элементарный механизм проверки а что-то же в конфигурации доработано.
Я так понимаю вам ни разу не попадались конфигурации, которые обновляли именно через Сравнение-объединение, и сначала приходится выяснять какое обновление там было установлено целиком, где куски обновлений следующих, а где вообще доработки без комментариев.
Имелся в виду режим объединения объектов, взамен предложенного «Объединить с приоритетом…»
(39) Если в справочнике был объект с последним кодом, например 000009, и вы добавляете какой-нибудь ПЭ-001, то следующему систему присвоит код +1 к максимальному (ПЭ-002)
Не особо, но немного больше кода и скорее всего немного трудозатратней.
Да, «Снять с поддержки». Встречались такие базы, но действительно редко, гораздо чаще «некорректно обновленные»
Значит я недопонял)))
А еще бывает конфликт интересов админ-франчайзи, когда приходящий программист всеми силами пытается снять базу с поддержки, чтобы регулярно платно ее обновлять, а админ сопротивляется и показывает инфостартовские обработки для пользовательских «хотелок», оставляющие базу типовой, но не лезет сам их прикручивать. В итоге база остается типовой ))
(46) BlaSo,
— кто сказал? Откуда сей бредовый вывод? Стандартное обновление как раз через обновление — сравнение и обновление — из клюшек…
вангонутость у Вас страдает — попадались — решается просто — снимается с поддержи совсем (остаётся одна основная конфигурация), потом сравнивается с того же релиза типовой, и принимается решение (90% случаев вертается типовая)))))
раньше было сложнее. сечас на этапе объединения снятой с поддержки конфигурации (у меня всегда это копия базы клиента, на которой я готовлю обновление) тексты модулей просто включаются в обновление, с изменёнными реквизитами чуть сложнее, но там то же можно (не всегда конечно) решить на этапе объединения (объединение здесь всегда имеется ввиду через Конфигурация — Поддержка — Обновить конфигурацию), если не получается на этапе объединения, то всегда вставляю затычку, которая не позволяет потерять данные на рабочей базе клиента —http://infostart.ru/public/333873/
Обновление через сравнить….клюшечный подход)))))
(48) Alex_E, дабы не виделось то что хочется видеть, а не то что написано:
Нормальное (!) обновление типовой конфигурации (оно же есть стандартное): Конфигурация — Поддержка — Обновить конфигурацию
Некорректное, но периодически встречающееся: Конфигурация — Сравнить, объединить с конфигурацией из файла…
теперь в контексте понимания терминов думайте что было написано выше
У меня ничего не страдает, иногда просто не возможно определить точно релиз, потому что конфигурация является чем-то средним между двумя или тремя релизами 🙂
(49) BlaSo,
странно, выше было написано
Я так понимаю вам ни разу не попадались конфигурации, которые обновляли именно через Сравнение-объединение, и сначала приходится выяснять какое обновление там было установлено целиком, где куски обновлений следующих, а где вообще доработки без комментариев.
— где я говорил, что не нужно обновлять конфигурацию поставщика, и откуда Вам известно, что мне ни разу не попадались
?!!!
Если у меня образовывается новый клиент, первое, что я делаю — это проверяю конфигурацию на соответствие типовой!!!
ТО, что конфа у клиента «под замком»не факт, что там типовая, дальше повторяться не буду, см. (48)
(50) Alex_E, Ну так все правильно 🙂
Конфигурация поставщика НЕ обновляется только при неправильном накатывании апдейта (Конфигурация — Сравнить, объединить с конфигурацией из файла…)
соответственно в таком случае бессмысленно сравнивать со старой конфигурацией поставщика
(51) BlaSo, Потому и говорю, что правильное онвление через обновление)))сравнение и прочая хрень — исключения, от которых отказаться нельзя, но это таки исключения из правил))))
(51) мы всегда оставляем конфу поставщика, следовательно обновление через Поддержка — Загрузить из файла. 😉
(45) много букв еще не значит много смысла. БП, рисуемые в конфигураторе, отображают точки маршрута. В реальных бизнес процессах эти точки хотят рисовать сами пользователи. т.к. процессы динамичны. 1с такой возможности не дает. Следовательно ее решение годится только там, где есть простейшие статичные БП, что собственно говоря мы и видим, т.к. в типовых БП лишь для декораций используются. Не пошли они в ширнармассы.
(53) вот это показывает то, что темой Вы не владеете. Точки БП — это то, как аналитик фиксирует потребности бизнеса в схеме решения задачи, а не то, что там себе выдумывает пользователь. Хоть бы вики почитали что-ли:
По поводу динамичности процесса, то за это отвечает механизм ветвления, разделения и слияния. Учите мат.часть.
(54) хохохо, вместо конкретики вы ушли в буквоедство. счастливого пути.
(55) да, аргумент что надо. Понятно, почему Вас в Связной не взяли.
(56) в случае появления конкретики продолжу с Вами дискуссию.
(57) аналогично.
(35) BlaSo,
Крайне вредная рекомендация про предопределённые элементы…. особенно в РИБе.
(58) ок
(59) не вижу ничего плохого в НайтиПоКоду, ровно как и в использовании операторов Перейти. Главное четко понимать преимущества того или иного решения.
(60) А я и не писал что это плохо… плохо раздавать советы про предопределённые элементы.
(59) TODD22, Давайте конкретней, если пишите плохо, то напишите почему.
Единственный минус, предопределенных элементов, это НЕ гибкость настройки для пользователя.
(60) Минуса НайтиПоКоду:
На больших и средних проектах, я при необходимости создаю специальный справочник, куда забрасываю предопределенные значения, а в режиме Предприятия для них указываются значения. Такой себе аналог констант, все настройки в одном месте и при чтении кода видно какое значение используется.
(62) хохохо, если вы создаете код не в диапазоне работы пользователя, т.е. код вида ПЭ-*****, то пользователь ну ни в жизнь не догадается создать элемент с таким же кодом, к тому же задублировать ему система не даст. А поменять код имеющегося элемента ему тоже мозгов не хватит. Нет, можно конечно, страховаться и от падения метеорита из космоса, но мы же прикладные программисты, автоматизируем бухучет, а не взлет-посадку Боинга. Прошу соотносить риски и затраты.
при всем моем уважении к вам, с появлением расширений половина из написанных вами рекомендаций становиться невостребованной или для крайне редких разработок
(64) ну надо будет покурить расширения, да. Думаю, это не панацея.
Касательно расширений:http://v8.1c.ru/o7/201410ext/
Это, конечно, хорошо, но пока не панацея.
Можно перехватывать только события управляемых форм и обрабатывать их по-своему.
Но нельзя изменить алгоритм общего модуля или менеджера документа. Возможно, 1с доработает этот момент, но пока расширения — не универсальный инструмент, применимый чаще для интерфейсных случаев, а не для изменения логики решения.
Для логики опять же остаются только подписки (их в расширениях юзать нельзя, что странно) и непосредственная правка кода.
…
Поэтому можно добавить свои команды, скопировав обработки модуля команды (они там примитивные).
В своих командах указать свой собственный состав документов для команды.
У нас в базе тоже есть своя команда на структуру подчинённости. Её делали давно и скорее всего не я. Сейчас глянул: она за собой потянула создание своего «критерия отбора» и общей формы структуры подчиненности. База: БП 3.0
Вы как-то без этого обошлись или просто забыли об этом в статье упомянуть?
При этом если сравнения вылетит, придется сохранять все сначала.
Поэтому если объем изменений большой, можно выписать список дважды измененных объектов (можно сделать скриншоты) и сравнивать в обычном режиме, а не через обновление.
В 8.3.8 вроде проблема уже решена. Ни разу не юзал, но описаниетут . Если нет подписки на ИТС, то вкратце появилась возможность выгрузить (в том числе и автоматически выгружать) и загрузить настройки.
…
Загрузить настройки… – настройки окна сбрасываются к настройкам по умолчанию, а затем выполняется загрузка настроек объединения из файла. Загруженный файл становится текущим для выполнения команды сохранения и автоматического сохранения настроек.
(66) по поводу расширений соглашусь, что вроде как штука хорошая, но не панацея. Тоже их не пробовал на практике, но когда только вышли много читал про них и пришёл к выводу, что будет только сложнее с ними работать. Опустим момент, что общие модули нельзя изменять, допустим они это реализуют. Допустим есть изменения вида:
Дальше как я понимаю я в расширение добавляю всю эту процедуру. И если 1С-овцы её изменят при обновлении я этого не замечу. Только интерактивно пользователь когда увидит (если заметит) мы поймём что что-то не так. При идеале конечно должны помочь выявить все эти изменения тесты, но во-первых не у всех они есть, во-вторых под каждый чих их придётся писать (было N часов на программирование, стало N*2), да и в-третьих тесты тоже не идеальны и пишутся не на 100% случаев и могут пропустить. А в процессе обновления пропустить дважды измененную процедуру труднее. Плюс если мы выявили такую ситуацию: в окне сравнения сейчас проще изменения внести чем после обновления анализировать в разных окнах код до и код после.
А когда дополнений мало и они именно расширяют, а не изменяют (как в большинстве случаев) что-то в типовой конфе, то можно попробовать и расширения.
Гений1С в своём духе. С очень умным видом приведены или устаревшие, или частные, или вообще сомнительные способы. Зато претензия на всеобщесть. Зато куча плюсов, хотя следование рекомендациям as is может плохо кончиться. И как всегда нежелание услышать собеседника в комментах. И главное, всё это уже стопицот раз было в тех или иных формах публиковано, но нет же, надо и свою нетленку выложить)
Единственно, что скажу: ни в коем случае не связывайтесь с расширениями. Лучше курочить типовую и потом её обновлять — там всё зависит от вас, вашей грамотности и правильности кода. А в случае применения расширений всё будет зависеть от неуправляемого множества багов и косяков, которые авторы сего шедевра допустили в платформе.
(62) BlaSo,
Единственный минус, предопределенных элементов, это НЕ гибкость настройки для пользователя.
Если бы минус был бы только с гибкостью настройки для пользователя то вот такая обработка была бы не нужна:
http://infostart.ru/public/305892/
Можете по количеству скачавших понять сколько минусов с предопределёнными элементами. Например у меня была проблема в РИБе когда на 10 магазинов задвоились предопределённые элементы и разлетелись по 150 узлам… Конфигурация была самописная и на предопрелённые элементы было завязано огромное количество функций. И вот после их задвоения и обмена вся сеть встала. Минусов на самом деле больше чем плюсов….
(69) Yashazz,
— как то вполне в духе первого предложения первого обзаца предыдущего поста, только про Вас))))
Стал использовать расширения с момента их появления, на сегодня уже год вполне себе работает на пивзаводе, и могу сказать, что как минимум в части изменений форм объектов типовой, лучшего механизма для обновлений практически нет.
Возможность изменять интерфейс, создавать свои подсистемы, добавлять свои обработки (модули менеджера которых вполне себе заменяют общие модули), свои отчеты…
Конфигурация на БП 3.0, включена возможность изменения, обновления бывало выходили по паре раз за день, база легко обновляется, используются свои общие модули для подписок на события, свои регистры и справочники — это в изменениях типовой, и — главное -все эти изменения начиная с 8.3.6.* проделываются в окне сравнения, а вот формы типовых справочников/документов, где нужны были изменения, отчеты и обработки и своя подсистема «Алко» вполне себе сидят в расширении, и за год изменения пришлось вносить может пару раз, причем минимальные… С подпискам и на события и некоторыми изменениями общих модулей типовой это случалось гораздо чаще))))
(71) Alex_E, ну почитайте мою статью про расширения (http://infostart.ru/public/441730/) и опровергните хоть единый факт из неё и идущих к ней комментариев. Кривой, ненадёжный, нестабильный механизм — такое нельзя использовать в серьёзных промышленных решениях. Насчёт модулей менеджера можете не рассказывать, вполне себе они нихрена не заменяют, если одно расширение вдруг не примонтировалось, а в другом есть их вызовы. Словом, если очень сильно повезёт и комариный чох на вашей стороне, то добавлять свои обработки можно. Не более. Если хотите спать спокойно после обновления платформы)))
(72) Yashazz, Да я сплю спокойно, вот уже год, а если что то делать криво, то потом не стоит удивляться, что не работает…
Это не токо к расширениям относится))))
Про опрровергать что-то из Вашей статьи, оно мне надо? Вы из моего поста что опровергнули? Что модуль менеджера обработки из расширения
— ну дык то прямое подтверждение, что если что-то сделать криво — чего удивляться, что не работает? Кто заставляет делать вызов из другого расширения, и уж тем более пускать в продакш не проверив?))))
(67) klinval, да, прикольно появились кнопочки сохранения и загрузки. На практике еще не юзал, но кнопочки уже видел.
(68) ну батенька, вы захотели, чтобы расширение замечало, что процедура менялась. Это из области фантастики, да и не нужно особо. Надо тестировать как-то расширение на новых релизах. Автотесты вам в помощь, если это серьезное расширение.
(69) буду признателен, если вы выложите свои «гениальные» советы, а то беспочвенно очернять не конструктивно. Конструктивные замечания принимаются — видите, я даже посмотрел расширения. Ничего крамольного в них не вижу.
(70) ну в РИБ надо внимательно относиться к предопределенным, таки да. А не пенять потом на то, что вы не изучили, как работают предопределенные элементы в новых платформах.
(71) охотно верю, но без подписок и перехвата процедур и участков кода общих модулей и модулей документов это какое-то неполноценное решение, пусть допиливают. Это как RLS на измненение — ненужное и избыточное.
(72) спасибо за ссылочку. Надеюсь, это болезни роста и 1С все же наконец вычистит свои баги. 😉 Но вообще, учитывая общую неполноценность расширений (нельзя юзать подписки и процедуры общих модулей), пока юзать расширения рано для серьезных вещей. Тем более с таким наборов багов, ок.
(74)
буду признателен, если будет пояснение в каком именно месте и чё я так очернил?
По поводу советов и пр. выложил здесь кастомизированное решение на расширении — вырезка из той конфигурации, о которой говорил выше —http://infostart.ru/public/363185/
Ещё один совет, не про расширение — проверять изменённые типовые объекты (реквизиты объектов) на этапе подготовки обновления перед обновлениемhttp://infostart.ru/public/333873/ — вроде пустяк, забыть где нить галочку поставить, а вот когда аукнется, уже и не пустяк будет)))
(74)
А никто и не пеняет. Изучили как работают. Только изучение работы от ошибок не избавляет…. Так что мимо…
Без добавления реквизита формы вручную:
(78) Sergey Ivanov,
хороший вброс на вентилятор)
(78) руки не пробовал перешить чуть повыше?
Уважаемые коллеги, использующие методы «НайтиПо…()», убедительная просьба: делайте функции-обертки для вызова этих методов.
Недавно столкнулся с конфигурацией, в которой конструкция «КакаятоСсылка = Справочники.КакойтоСправочник.НайтиПоКоду(«000001″)» встречалась раз эдак 300 или даже больше.
Спрашивается, вот что мешало сделать функцию в общем модуле
?
(81) hulio, я такой же трешняк бывало видел. более того некоторые особо одаренные, делают глобальные переменные КакойтоСправочник = Справочники.КакойтоСправочник, поскольку видимо им лень писать Справочники.КакойтоСправочник. жаль нельзя задавать правила, по которым на некоторые участки кода выдавалось бы сообщение об вероятной ошибке .
и имхо код вообще не должен быть жестко прибит к каким-то определенным данным (исключения есть, правда, но на то они и исключения). т.е. нужно выносить значение либо в форму выбора пользователем, либо в константу, либо куда еще. поскльку есть риск нарваться на неприятности. нет никаких гарантий, что через какое-то количество времени кто-нибудь из пользователей не запустит обработку смены кодов/наименований и т.п.