Оптимизация tempdb для работы 1С:ERP

Оптимизация базы данных tempdb для работы с 1С:ERP может значительно повысить производительность системы. Вот несколько рекомендаций по оптимизации:

  1. Перемещение tempdb на быстрый диск: Разместите tempdb на SSD или другом быстром диске, чтобы уменьшить время доступа к данным.
  2. Использование RAM-диска: Если это возможно, переместите tempdb на RAM-диск. Это обеспечит максимальную скорость работы, но необходимо следить за размером tempdb, чтобы избежать переполнения.
  3. Настройка файлов tempdb:
  • Создайте несколько файлов данных для tempdb (рекомендуется 4-8 файлов), чтобы избежать блокировок и улучшить параллелизм.
  • Установите фиксированный размер файлов и отключите автоматическое увеличение (autogrowth), чтобы избежать фрагментации.
  1. Мониторинг и управление размером: Регулярно проверяйте размер tempdb и используйте команды для сжатия, если это необходимо. Например, можно использовать DBCC SHRINKFILE для уменьшения размера файлов.
  2. Оптимизация запросов: Проверьте запросы, которые используют tempdb, и оптимизируйте их. Избегайте ненужного использования временных таблиц и старайтесь минимизировать объем данных, обрабатываемых в tempdb.
  3. Настройка параметров SQL Server: Убедитесь, что параметры SQL Server настроены оптимально для работы с 1С:ERP, включая настройки памяти и параллелизма.
  4. Регулярное обслуживание: Настройте регулярные планы обслуживания для очистки и оптимизации tempdb, чтобы поддерживать его в хорошем состоянии.

Эти шаги помогут улучшить производительность 1С:ERP и снизить время выполнения операций, связанных с использованием tempdb.

Как программно заполнить реквизит типа таблица значений на форме обработки неделями года в зависимости от количества недель года

Для того чтобы программно заполнить реквизит типа “Таблица значений” на форме обработки неделями года, можно использовать следующий подход. Мы создадим таблицу значений, добавим в нее колонки для номера недели и других необходимых данных, а затем заполним ее в зависимости от количества недель в году.

Вот пример кода на языке 1С:

// Создаем новую таблицу значений
ТаблицаНеделей = Новый ТаблицаЗначений;

// Добавляем колонки
ТаблицаНеделей.Колонки.Добавить(“НомерНедели”, Новый ОписаниеТипов(“Число”));
ТаблицаНеделей.Колонки.Добавить(“ДатаНачала”, Новый ОписаниеТипов(“Дата”));
ТаблицаНеделей.Колонки.Добавить(“ДатаОкончания”, Новый ОписаниеТипов(“Дата”));

// Получаем текущий год
ТекущийГод = Год(ТекущаяДата());

// Определяем количество недель в году
КоличествоНедель = 52; // По умолчанию 52 недели
Если (Месяц(КонецГода(ТекущийГод)) = 12) И (День(КонецГода(ТекущийГод)) = 31) Тогда
Если (ДеньНедели(КонецГода(ТекущийГод)) = 1) Тогда
КоличествоНедель = 53; // Если 31 декабря – понедельник
КонецЕсли;
КонецЕсли;

// Заполняем таблицу значениями
Для НомерНедели = 1 По КоличествоНедель Цикл
// Определяем даты начала и окончания недели
ДатаНачала = НачалоНедели(Дата(ТекущийГод, 1, 1) + (НомерНедели – 1) * 7);
ДатаОкончания = КонецНедели(ДатаНачала);


// Добавляем строку в таблицу
НоваяСтрока = ТаблицаНеделей.Добавить();
НоваяСтрока.НомерНедели = НомерНедели;
НоваяСтрока.ДатаНачала = ДатаНачала;
НоваяСтрока.ДатаОкончания = ДатаОкончания;

КонецЦикла;

// Присваиваем таблицу значений реквизиту на форме
ЭтотОбъект.РеквизитТаблицаНеделей = ТаблицаНеделей;

В этом коде мы:

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

Не забудьте заменить РеквизитТаблицаНеделей на фактическое имя вашего реквизита на форме.

Как мутабельное в немутабельное значение перевести?

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

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

Вот пример кода:

// Создаем мутабельный массив
МассивМутабельный = Новый Массив;
МассивМутабельный.Добавить(1);
МассивМутабельный.Добавить(2);

// Переводим в немутабельный массив
МассивНемутабельный = Копировать(МассивМутабельный);

// Теперь МассивНемутабельный является немутабельным

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

как загрузить данные из 1с в гугл таблицу через API

Для загрузки данных из 1С в Google Таблицу через API, вам нужно выполнить несколько шагов. Вот подробная инструкция:

1. Подготовка

1.1. Создание проекта в Google Cloud Platform

  • Перейдите в Google Cloud Console (https://console.cloud.google.com/).
  • Создайте новый проект.
  • Включите Google Sheets API для вашего проекта.

1.2. Создание учетных данных

  • В разделе “API и сервисы” выберите “Учетные данные”.
  • Создайте учетные данные типа “OAuth 2.0 Client ID” или “API Key” в зависимости от ваших требований.
  • Сохраните идентификатор клиента и секрет.

2. Получение токена доступа

Если вы используете OAuth 2.0, вам нужно будет получить токен доступа. Для этого выполните следующие шаги:

Функция ПолучитьТокенДоступа()
// Здесь должен быть код для получения токена доступа через OAuth 2.0
// Используйте идентификатор клиента и секрет для аутентификации
КонецФункции

3. Формирование запроса на загрузку данных

Теперь, когда у вас есть токен доступа, вы можете отправить данные в Google Таблицу. Вот пример кода для загрузки данных:

Функция ЗагрузитьДанныеВГуглТаблицу(ИдТаблицы, Данные, Токен)
АдресРесурса = “sheets.googleapis.com”;
АдресЗапроса = “/v4/spreadsheets/” + ИдТаблицы + “/values/Лист1!A1:append?valueInputOption=RAW&access_token=” + Токен;


Соединение = Новый HTTPСоединение(АдресРесурса, 443);
Запрос = Новый HTTPЗапрос(АдресЗапроса);
Запрос.УстановитьМетод("POST");
Запрос.УстановитьЗаголовок("Content-Type", "application/json");

// Формируем тело запроса
ТелоЗапроса = Новый Структура;
ТелоЗапроса.Вставить("values", Данные); // Данные должны быть в формате [["Значение1", "Значение2"], ["Значение3", "Значение4"]]

Запрос.УстановитьТело(ЗаписатьJSON(ТелоЗапроса));

Ответ = Соединение.Отправить(Запрос);

Если Ответ.КодСостояния = 200 Тогда
    Сообщить("Данные успешно загружены в Google Таблицу.");
Иначе
    Сообщить("Ошибка загрузки данных: " + Ответ.КодСостояния);
КонецЕсли;

КонецФункции

4. Пример использования

Данные = Новый Массив;
Данные.Добавить(Новый Массив(“Товар”, “Количество”, “Цена”));
Данные.Добавить(Новый Массив(“Груши”, 12, 14.55));
Данные.Добавить(Новый Массив(“Яблоки”, 123, 15.74));

Токен = ПолучитьТокенДоступа();
ЗагрузитьДанныеВГуглТаблицу(“ВашИдТаблицы”, Данные, Токен);

Заключение

Теперь вы можете загружать данные из 1С в Google Таблицы через API. Убедитесь, что у вас есть все необходимые разрешения и правильно настроены учетные данные.

Абонентское обслуживание

Я оказываю услуги абонентского обслуживания 1С в Луганске (ЛНР), Донецке ( Россия), Краснодоне (ЛНР), Красном Луче ( ЛНР), Антраците (ЛНР), Ровеньках (ЛНР).

По-умолчанию, так как я dev-ops 1C, выполняю полный спектр работ, начиная от проектирования, проценки, пусконаладки it инфраструктуры ( развертывание 1С от простых файловых баз, баз на мини-серверах, веб-серверах, производственная маркировка, торговая маркировка опт, торговая маркировка розница, обмены данными с другими учетными системами, миграция со старых учетных систем, обучение персонала ( кроме профильного образования. Я учу работать с 1С как с инструментом. Если Вы думаете, что я обучу вашу машинистку и оператора ПК быть бухгалтером, то глубоко заблуждаетесь) и доработка 1С согласно бизнес-процессов организации.

Соответственно, я беру на абонентское сопровождение за фиксированную ежемесячную плату организации и предприятия.

Что вы получаете согласно договору? Не стоит путать с договором ИТС! Состав услуг опциональный

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

Мониторинг IT инфраструктуры, поддержку IT инфраструктуры.

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

Хранилище резервных копий 1С на отдельном облаке

Составления ТЗ и доработки ( при необходимости) текущей системы с целью удовлетворения бизнес-потребностей организации.

Возможность звонить мне с голосовыми звонками ( отправлять голосовые сообщения). Без заключенного договора на абонентское сопровождение все звонящие отлетают в черный список. Бесплатно слушать ваши вопросы и консультировать мне неинтересно

Для оценки Абонентского сопровождения опишите суть Вашего вопроса текстом в сообщении в мессенджер или на почту и оставьте контакты. Я дам ответ, какие будут условия работ, если возьмусь за них и какая будет стоимость

Учет НДС при применении УСН с 01.01.2025 в УТ 11.5

Требования к системе

  • Конфигурация: 1С: Управление торговлей 11.5 (базовая, ПРОФ)
  • релиз конфигурации: 11.5.20.20 и выше

Настройки учета НДС при УСН в 1С УТ 11.5

В 1С Управление торговлей начиная с релиза 11.5.20.20 включена возможность организациям и ИП, применяющим УСН, выполнять обязанности плательщика НДС в соответствии с положениями Федерального закона N 176-ФЗ от 12.07.2024.

Чтобы активировать возможность совмещения УСН и НДС, перейдите в раздел НСИ и администрирование – Организации в карточке организации. На вкладке Учетная политика кликните по ссылке Изменить настройки учета НДС.

  • Продажа не облагается НДС, в документах выбирается ставка «Без НДС» — используется, если доход не достиг порога, при котором упрощенец становится плательщиком НДС
  • Продажи облагаются НДС по льготной ставке 5%, не применяются вычеты — используется, если доход упрощенца, превышает порог применения ставки «Без НДС» (в 2025 году это доход свыше 60 млн руб. и до 250 млн руб.). Вычетов налога при этой ставке нет
  • Продажи облагаются НДС по льготной ставке 7%, не применяются вычеты — используется, если доход упрощенца, превышает порог применения ставки 5%, но не превысил порог применения льготных ставок НДС (в 2025 году это доход свыше 250 млн руб. и до 450 млн руб.). Вычетов налога при этой ставке нет
  • Применяются общие ставки НДС (20%, 10%), применяются все вычеты — используется, если доход упрощенца, превышает порог применения льготных ставок НДС (в 2025 году это доход свыше 450 млн руб.). Вычеты по НДС применяются

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

В документах продаж (Заказ клиентаРеализация товаров и услугРеализация услуг и прочих активов) в поле Налогообложение выберите вид налогообложения в соответствии с установленным вариантом учета НДС:

  • Продажа не облагается НДС
  • Льготное налогообложение НДС на УСН
  • Продажа облагается НДС

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

Как увеличить размер диска для zabbix appliance 7?

Моя природная лень ( как сапожник без сапог, что не выкраивает себе времени для оптимизации своего инструмента), сподвигла установить zabbix appliance готовое решение для мониторинга хостов клиентских серверов.

И уже после многочасовой настройки всех узлов мониторинга я вдруг осознал, что размер c/

Читать далее

как преобразовать Строку “2,4,6,8,10,3” в массив чисел

Чтобы преобразовать строку “2,4,6,8,10,3” в массив чисел в 1С, можно использовать функцию СтрРазделить, чтобы разделить строку по запятой, а затем преобразовать каждую часть в число. Вот пример кода, который это делает:

// Исходная строка
ИсходнаяСтрока = "2,4,6,8,10,3";

// Разделяем строку на массив строк
МассивСтрок = СтрРазделить(ИсходнаяСтрока, ",");

// Создаем новый массив для чисел
МассивЧисел = Новый Массив();

// Перебираем каждую строку и преобразуем в число
Для Каждого Элемент Из МассивСтрок Цикл
МассивЧисел.Добавить(Число(Элемент));
КонецЦикла;

// Теперь МассивЧисел содержит числа

В результате выполнения этого кода, МассивЧисел будет содержать числа: 2, 4, 6, 8, 10, 3.

Последовательность событий при программном создании нового документа в 1С

При программном создании нового документа в 1С последовательность событий может выглядеть следующим образом:

  1. Создание объекта документа: Сначала создается объект документа с помощью метода СоздатьОбъект. Например: НовыйДокумент = Документы.ИмяДокумента.Создать();
  2. Заполнение реквизитов документа: После создания объекта необходимо заполнить его реквизиты. Это может включать установку значений для шапки документа и табличной части. НовыйДокумент.Дата = ТекущаяДата();
    НовыйДокумент.Организация = Справочники.Организации.НайтиПоКоду(1);
  3. Заполнение табличной части: Если документ имеет табличную часть, то необходимо добавить строки в эту табличную часть и заполнить их. НоваяСтрока = НовыйДокумент.ТабличнаяЧасть.Добавить();
    НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(1);
    НоваяСтрока.Количество = 10;
  4. Проверка на ошибки: Перед записью документа рекомендуется выполнить проверку на ошибки, чтобы убедиться, что все обязательные реквизиты заполнены корректно. Если Не НовыйДокумент.Заполнен() Тогда
    Сообщить(“Заполните все обязательные поля!”);
    Возврат;
    КонецЕсли;
  5. Запись документа: После заполнения всех необходимых реквизитов документ записывается в базу данных. НовыйДокумент.Записать();
  6. Проведение документа: Если необходимо, документ можно провести сразу после записи. НовыйДокумент.Провести();
  7. Обработка событий: В зависимости от конфигурации могут срабатывать различные события, такие как ПриЗаписи, ПриПроведении, которые могут быть переопределены в модуле документа для выполнения дополнительных действий.
  8. Закрытие формы (если открыта): Если документ создается через форму, то после завершения всех операций форма может быть закрыта. Форма.Закрыть();

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

Как сделать автоматический перезапуск службы 1С на сервере Windows с очисткой кэша сеансов?

Для автоматического перезапуска службы 1С на сервере Windows с очисткой кэша сеансов можно использовать пакетный файл (.bat), который будет выполнять необходимые команды. Вот пример такого скрипта:

@echo off
setlocal enabledelayedexpansion

:: Задаем имя службы агента сервера 1С
set agent="1C:Enterprise 8.3 Server Agent (x86-64)"

:: Задаем файл лога
set logfile="C:\path\to\your\log\LOG_restart.txt"

:: Останавливаем службу агента сервера 1С
echo %date% %time% "Stopping service %agent%" >> %logfile%
net stop %agent% >> %logfile%

:: Ждем, пока служба остановится
timeout /t 10 /nobreak >nul

:: Очищаем кэш сеансов
echo %date% %time% "Clearing session cache" >> %logfile%
set cacheDir="C:\Program Files (x86)\1cv8\srvinfo\reg_1541"
rd /s /q %cacheDir%\snccntx* >> %logfile%

:: Запускаем службу агента сервера 1С
echo %date% %time% "Starting service %agent%" >> %logfile%
net start %agent% >> %logfile%

:: Завершение
echo %date% %time% "Service restarted successfully." >> %logfile%
endlocal

Пояснение к скрипту:

  1. Остановка службы: Используется команда net stop, чтобы остановить службу 1С.
  2. Очистка кэша сеансов: Удаляются все папки с кэшем сеансов, находящиеся в указанной директории. Убедитесь, что путь к кэшу соответствует вашей установке.
  3. Запуск службы: После очистки кэша служба запускается снова с помощью команды net start.
  4. Логирование: Все действия записываются в лог-файл для последующего анализа.

Настройка автоматического выполнения:

Чтобы этот скрипт выполнялся автоматически, вы можете использовать Планировщик задач Windows:

  1. Откройте “Планировщик задач”.
  2. Создайте новую задачу.
  3. Установите триггер (например, по расписанию).
  4. В разделе “Действия” выберите “Запустить программу” и укажите путь к вашему .bat файлу.
  5. Убедитесь, что выбраны опции “Выполнить с наивысшими правами” и “Выполнять вне зависимости от регистрации пользователя”.

Рекомендации:

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

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