• Как произвести обновление программного обеспечения при непрерывном производстве 24\7. В частности больших баз 1С?

    WhiteSsnoww
    @WhiteSsnoww
    Программист
    В текущей постановке вопроса - без остановки базы - никак.
    Однако, если определить требования простоя, то возможно.
    Например, простой базы 60 минут недопустим. В то время как простой базы 5 мин для обновления вполне приемлем.
    Если допускается простой для обслуживания в 5 мин, то в этот интервал можно уложиться.

    Что такое обновление базы 1С.
    В процессе обновления выполняется накатывание нового кода, а также реструктуризация базы. Накатывание кода происходит быстро.
    Основное время обновления занимает реструктуризация ИБ.
    Вопрос в том - как сократить время реструктуризации ИБ.
    Не каждое обновление затрагивает таблицы базы данных. Поэтому не каждое обновление будет долгим.
    Рассмотрим случай, когда внесли изменение в большую таблицу.
    Выполнение реструктуризации средствами 1С процесс долгий. Сначала создается новая таблица с новой структурой. Далее в эту новую таблицу перекладываются записи (по одной!) из старой таблицы. Мощность оборудования мало что решает при таком подходе. Какие бы мощные сервера не были, они не могут сильно ускорить процесс перекладывания записей "по одной".
    Решение:
    1. Организационное. Заранее определять "тяжелые" и "легкие" релизы. Т.е. релизы, которые затрагивают тяжелые таблицы, и которые не затрагивают.
    2. Технические. Не вносить изменения в существующие поля "тяжелых" таблиц, а только добавлять новые поля, сбоку. При таком подходе можно вмешаться в процесс реструктуризации ИБ.
    Дело в том, что когда вы добавляете новое поле, то 1С все-равно выполняет реструктуризацию, даже, если это поле пустое. Такая 1С-ка "тупая". Ничего не поделаешь. Однако это можно компенсировать при работе на уровне СУБД. На этапе реструктуризации можно подменять имена таблиц таки образом, что 1С-ка будет реструктуризировать пустую таблицу. Далее заменять таблицу обратно. Например:
    Дано:
    Таблица - А - большая и тяжёлая
    В таблицу А добавили новое поле АБ
    Задача:
    Надо выполнить реструктуризацию таблицы А максимально быстро.
    Решение:
    На уровне скуля переименовываем таблицу А в _А
    Включаем реструктуризацию 1С
    Реструктуризация создает недостающую таблицу А в соответствии с конфигурацией
    Перекачиваем данные из _А в А средствами СУБД - на уровне скуля это делается максимально быстро.
    Запускаем 1С, убеждаемся в работоспособности данных
    Удаляем _А

    Как-то так.

    P.S. Динамическое обновление НЕ советую применять никогда.
    Ответ написан
    1 комментарий
  • Какие права необходимо добавить?

    @Dem0lisher
    1. А каких банковских счетов-то? Организации или контрагента?
    2. А РЛС в разрезе контрагентов не активирован?
    Ответ написан
    Комментировать
  • 1C 8.3: Как программно проверить строки Таблицы Значений на чётность?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Четность проверяется через остаток деления на два. Если остаток 0, то это четное число.
    В 1С операция остаток от деления - %.
    Ответ написан
    Комментировать
  • В 1C как работает метод Сообщить() на сервере?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Сообщить(Сообщение.Текст);

    Это лишнее.
    При возврате формы на клиенте вам будет показано ваше сообщение.
    Ответ написан
    3 комментария
  • Как сделать чтобы товары помеченные на удаление не выгружались на сайт?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Легкий способ хотите?
    Добавьте реквизит к товару и аналогичное свойство в Битрикс, например INDELETE со значением Y.
    На стороне 1с запустить обработку, которая заполнит реквизит - по признаку "ПометкаУдаления".
    В Init.php добавляете событие "После добавления элемента" - если содержит заполненное новое свойство - то удалить в Битриксе или деактивировать товар.

    Второй способ:
    В обработчик ПередВыгрузкой в 1с добавить что-то типа такого
    Отказ=Источник.ПометкаУдаления;

    Третий способ:
    Зайти сюда /bitrix/admin/1c_admin.php?lang=ru
    и просто выбрать нужный вариант)
    5f9b38d79ea19168902595.jpeg
    Ведь, если у вас штатный модуль обмена, то в xml должно попадать ПометкаУдаления

    Если ничего не получится, то действительно придется воспользоваться услугами специалиста, как тут некоторые советуют как обычно.
    Ответ написан
    1 комментарий
  • Как задать видимость группы в форме 1с если данные справочника не предопределенны?

    Sgr_A
    @Sgr_A
    Открываем синтакс-помощник, переходим по разделам:
    Прикладные объекты - Справочники - СправочникМенеджер.<ИмяСправочника> - Методы - НайтиПоНаименованию

    и видим там...

    СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
    НайтиПоНаименованию (FindByDescription)
    Синтаксис:
    НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)

    Параметры:
    <Наименование> (обязательный)
    Тип: Строка.
    Строка, содержащая искомое наименование.
    <ТочноеСоответствие> (необязательный)
    Тип: Булево.
    Определяет режим поиска по полному соответствию.
    Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании).
    Значение по умолчанию: Ложь.
    <Родитель> (необязательный)
    Тип: СправочникСсылка.<Имя справочника>.
    Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
    <Владелец> (необязательный)
    Тип: СправочникСсылка.<Имя справочника>.
    Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.

    Возвращаемое значение:
    Тип: СправочникСсылка.<Имя справочника>; Неопределено.
    Ссылка на найденный элемент справочника.
    Если не существует ни одного элемента с требуемым наименованием, то будет возвращена пустая ссылка.
    Если для справочника наименование не задано (длина = 0) и поиск выполняется по полному соответствию, то будет возвращено Неопределено.

    Описание:
    Осуществляет поиск элемента по его наименованию.

    Доступность:
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

    Примечание:
    Если существует несколько элементов с указанным наименованием, то будет найден только один из них.

    Пример:
    СтрокаНаименования = "USD";
    Валюты = Справочники.Валюты;
    НайденнаяСсылка = Валюты.НайтиПоНаименованию(СтрокаНаименования);
    Если НайденнаяСсылка = Валюты.ПустаяСсылка() Тогда
        Сообщить("Валюты """ + СтрокаНаименования + """ еще нет");
    КонецЕсли;
    Ответ написан
    1 комментарий
  • Как в 1C вызвать процедуру в модуле управляемого приложения?

    Fragster
    @Fragster
    помогло? отметь решением!
    Эти директивы не имеют смысла в модуле управляемого приложения, они имеют смысл только в модуле команды, в модуле формы и в общих модулях. При этом директива &НаСервереБезКонтекста имеет смысл только в модуле формы
    Правильно будет создать общий модуль с галочками "Сервер" и "Вызов сервера", поместить в него функцию Тест2 и вызывать её из модуля управляемого приложения как ИмяМодуля.Тест2()
    Ответ написан
    2 комментария
  • Как сделать интеграцию сайта на Битрикс с 1С?

    @anton99zel Куратор тега 1С-Битрикс
    29а класс средней школы №7
    Если Вы задаете такой вопрос, да ещё так неконкретно, то не думаю, что кто-то тут будет писать многотомные инструкции.
    Реальный совет: отвалить от 100т.р и сильно выше специалистам, тем более, если у вас нет знаний и каталоги с обоих сторон имеются с большим кол-вом товаров.
    Если нет денег и специалистов и не важен soap, то можете делать как я через winhttp, либо через обмен xml - и писать с обоих сторон обработки.
    spoiler
    //Онлайн интеграция заказов с сайтом	 - отправка из 1С
    ПараметрыОбмена = "";
    ПараметрыОбмена = ПараметрыОбмена + "KEY="+"DN9MBPQP7680";
    ПараметрыОбмена = ПараметрыОбмена + "&NUMBER="+Номер;
    ПараметрыОбмена = ПараметрыОбмена + "&DATE="+Дата;
    ПараметрыОбмена = ПараметрыОбмена + "&KLIENT="+Контрагент;
    ПараметрыОбмена = ПараметрыОбмена + "&PHONE="+ТелефонКлиента;
    ПараметрыОбмена = ПараметрыОбмена + "&EMAIL="+Контрагент.Email;
    ПараметрыОбмена = ПараметрыОбмена + "&STATUS="+Статус;
    ПараметрыОбмена = ПараметрыОбмена + "&STATUSORDER="+СтатусОбработки;
    ПараметрыОбмена = ПараметрыОбмена + "&STORES="+Подразделение;
    ПараметрыОбмена = ПараметрыОбмена + "&TOTAL="+СтрЗаменить(СуммаДокументаПолная, Символы.НПП, "");
    Массив = 0;
    Для Каждого ТекСтрокаЗаказТЧ Из ЗаказТЧ Цикл
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][id]="+ТекСтрокаЗаказТЧ.Товар.КодУТ;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][sections]="+ТекСтрокаЗаказТЧ.Товар.Родитель;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][item]="+ТекСтрокаЗаказТЧ.Товар;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][quantity]="+ТекСтрокаЗаказТЧ.Количество;
    ПараметрыОбмена = ПараметрыОбмена + "&CART"+"["+Массив+"][price]="+СтрЗаменить(ТекСтрокаЗаказТЧ.Цена, Символы.НПП, "");
    Массив = Массив+1;	
    КонецЦикла;
    
    WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2,"Windows-1251");                  
    WinHttp.Open("GET","https://mysite.com/api/1c.php?"+ПараметрыОбмена,0);    
    WinHttp.SetRequestHeader("Accept-Language", "ru");
    WinHttp.SetRequestHeader("Accept-Charset","Windows-1251");
    WinHttp.setRequestHeader("Content-Language", "ru");
    WinHttp.setRequestHeader("Content-Charset", "Windows-1251");
    WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=Windows-1251"); 
    WinHttp.Send();
    Сообщить(WinHttp.ResponseText());


    Еще есть обмен из коробки, он не полнофункциональный, скачать можно с сайта 1с
    https://www.1c-bitrix.by/products/cms/features/rea...
    Больше инструкций и исполнителей можно найти на форуме 1с-ников
    https://forum.infostart.ru/
    Ответ написан
    Комментировать
  • Как исправить столько ошибок в 1с 7.7?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    по скрину в Рег.Отчетности используется процедура Конфигурации. Вероятно они там появилась после обновления. Проверить есть ли такие процедуры в глобальном модуле
    А) обновится
    б) с корировать в вашу.
    Ответ написан
    2 комментария
  • Существуют варианты управления по сети SIP-клиентом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Обычно такая задача реализуется на стороне SIP-сервера. Например в Asterisk можно сделать через call-файлы или команду Originate в AMI. Сервер сам позвонит сотруднику, а когда он снимет трубку сервер начнёт вызов клиента.
    Ответ написан
    1 комментарий
  • Какое самое наилучшее приложение для чтения книг на android?

    Сейчас со многих перечисленных читалок перешел на ReadEra, очень уж удобный.
    Ответ написан
    Комментировать
  • Какое самое наилучшее приложение для чтения книг на android?

    nurfinn
    @nurfinn
    Самый лучший это - ReadEra. Просто попробуйте!
    Ответ написан
    Комментировать
  • Где скачать обновления 1С?

    Jump
    @Jump
    Системный администратор со стажем.
    Ответ написан
    Комментировать
  • Где изучить начальную базу 1C?

    @dimoff66
    Кратко о себе: Я есть
    Подготовка программистов 1С 8.2 30 уроков (текущая версия 8.3, но основы все те же)
    https://www.youtube.com/watch?v=s6b8EXmz8a4&t=1240s

    Курс программирования 1С 8.3: обучение с нуля
    https://www.youtube.com/playlist?list=PL6Nx1KDcurk...
    Ответ написан
    Комментировать
  • Почему 1С требует лицензию, после загрузки базы через конфигуратор?

    Jump
    @Jump
    Системный администратор со стажем.
    Уточните какая именно у вас лицензия 1с.
    Вероятно у вас куплена лицензия на базовую Бухгалтерию, а вы пытаетесь загрузить конфигурацию Проф.
    Ответ написан
    2 комментария
  • Как передать данные из документа в внешний обработчик?

    Jump
    @Jump
    Системный администратор со стажем.
    Ну запускаете в этом своем внешнем обработчике запрос к БД, получаете необходимые даныне и обрабатываете их.
    Ответ написан
    3 комментария
  • Как уведомить работников на складе, что нужно собрать товар?

    @anton99zel
    29а класс средней школы №7
    Я бы прикупил домен, сделал бы простенькую html-страницу, прикрутил авторизацию.
    Каждого пользователя склада привязал бы к группам, где группа это один из складов.
    После авторизации в вебе пользователь видит заявки на сбор товара и ссылки на печать документа если надо. Тыкнул на ссылку - пошла печать.
    В 1С при оформлении заявки отправляйте на веб-сервер данные. Более того, этот вебсервер можно там же поднять, где 1с стоит.
    Для уведомлений о новых заявках использовать Бота в телеграм, где каждый id чата = складу. Ну, или тупо ajax-автообновление страницы сделать и пусть в своих компьютерах/планшетах/телефонах видят заявки вообще ничего не нажимая. (будет как в Макдональдсе)))
    --
    Когда заказ собран, сотрудник ставит галочку в таблице заказов, а в 1С попадет информация о статусе заказа "Собран/Собирается".
    --
    Это самый простой вариант. Можете пойти по второму пути - поставить на склад тоже 1С с другими правами доступа, но это может оказаться сложно для пользователя, работающего на складе.
    Ответ написан
    1 комментарий
  • Парсер CommerceML под Java. Есть ли в природе?

    CommerceML – это же XML, так что любой XML парсер или биндер и опционально валидатор.

    Ну, как пример, JAXB https://www.codeflow.site/ru/article/jaxb
    Ответ написан
    4 комментария
  • Какую версию 1C ЗУП выбрать: 2.5 или 3.1*?

    @LollyFox
    Если быть точным, то с поддержки снята ЗУП ред.2.5 версии ПРОФ и Базовая, а ЗУП ред.2.5 версии КОРП еще остается на поддержке, но во-первых КОРП стоит 109000 руб., а во-вторых уровень поддержки все равно не тот, что у ред.3.1.
    У нас есть несколько клиентов, которые перешли с ЗУП ред.2.5 ПРОФ на КОРП, т.к. конфигурация была сильна переписана под специфику предприятия, но ставить "с нуля" ред.2.5 я бы не советовала.

    вроде как в 3.* не все предусмотрено - с их слов


    А вот этот момент надо бы уточнить, что же такое есть в 2.5 и нет в 3.1, ради чего может иметь смысл отказаться от актуальной версии и выбрать заведомо устаревшую.
    Ответ написан
    Комментировать
  • Какую версию 1C ЗУП выбрать: 2.5 или 3.1*?

    Jump
    @Jump
    Системный администратор со стажем.
    Конечно тройку.
    Главное в ЗУП это поддержка. Двойка с поддержки снята.
    О чем еще речь может идти?
    Вот с торговлей там все по другому - там некоторые еще на клюшках сидят.

    И как я понимаю, поддержки от 1С не жди
    Наоборот, главная особенность 1с это поддержка.

    если вдруг обнаружится дыра в безопасности позволяющая по модему подменить реквизиты счетов в бухгалтерских проводках
    Какие дыры, какие модемы?
    Задача 1с вовремя приводить конфигурацию в порядок в соотвествии с изменениями в законодательстве, и оперативно устранять явные ошибки.
    Ответ написан
    Комментировать