1.) Чем отличается структура от соответствия?
Строки и любые типы данных.
В структуре ключ строковый. В соответствии произвольный тип для ключа и значения.
2.) Чем отличается WHERE(ГДЕ) от HAVING (ИМЕЮЩИЕ)?
HAVING отрабатывает после группировок.
3.) Отличие ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЕ?
Слияние одинаковых строк или не слияние.
ОБЪЕДИНИТЬ ВСЕ оставит только неповторяющиеся записи.
4.) Какие наборы данных бывают в СКД?
- Запрос
- Объект
- Объединение
Запрос - это понятно. Объект например позволяет подтянуть структуру с http-сервиса. Также набор Объединение - нужен, чтобы например объединить Запрос и Объект, т.к. в СКД нет на уровне наборов FULL JOIN - только LEFT JOIN.
5.) Приемы работы с запросами - оптимизация.
Это будет рассмотрено в отдельной статье.
6.) Время жизни ВТ?
Живет до Результат.Выполнить(), но если используем менеджер временных таблиц, то живет в течение процедуры и можно использовать УНИЧТОЖИТЬ.
7.) Вопрос об управляемых блокировках.
Бывает строка ошибки: "В транзакции уже происходили ошибки".
Здесь на уровне кода главное грамотно повесить ВызватьИсключение.
8.) Вопрос о передачи ТЗ с клиента на сервер и обратно.
Надо положить в структуру или массив.
9.) Директива С Контекстом, без контекста.
Также директивы #НаКлиенте, #НаСервере
Тянем данные формы или нет.
С директивами #НаКлиенте, #НаСервере все понятно.
10.) Вопрос о ручной блокировке Объекта на запись.
Надо различать Объектную, транзакционную, оптимистичную, пессимистичную блокировки, а также автоматическую, управляемую.
11.) Как подтянуть ТЗ в запрос?
Тут важно понимать, что без типизации столбцов, может не отработать. Пример есть в справке 1С.
12.) Вопрос о галках общих модулей. Глобальный, Клиент, ВнешнееСоединение, Сервер, ВызовСервера, ПовторноеИспользование, вопрос о Привилегированном режиме?
С модулями вроде бы все понятно. Вопрос о Привилегированном режиме - это вопрос об обходе прав. Есть модули с галкой, но можно включить его командой 1С.
Свойства «Сервер» и «Вызов сервера» в общих модулях системы «1С» отличаются тем, что «Сервер» указывает на контекст выполнения кода,
а «Вызов сервера» — на возможность вызова экспортируемых методов серверного общего модуля из клиентского кода.
13.) Как передать ТЗ на сервере?
Таблицу можно передавать ссылкой на сервере.
14.) Как передать ТЗ с клиента на сервер через хранилище?
Можно через Временное хранилище (все равно нужен массив или структура). Внутри сервера можно по ссылке...
15.) Какие виртуальные таблицы бывают?
РН - Остатки, Обороты, ОстаткиИОбороты;
РС - СрезПервых, СрезПоследних
16.) DEADLOCK - мертвая блокировка таблицы несколькими процессами и средства борьбы?
Управляемые блокировки.
17.) Любят спрашивать про практику работы с методом Свернуть в Риал-тайм.
Пример кода можно найти в Интернет.
18.) Отработает ли покрывающий индекс для 3 элементов для 1 элемента?
Нет.
19.) Любят спрашивать про динамическую работу с УФ.
Примеры в Интернет. Особенно скорее всего касается Динамических списков.
20.) Некоторые спрашивают про оптимистичные и пессимистичные блокировки.
Зачем нужны блокировки?
Блокировки в первую очередь нужны для того, чтобы поддерживать консистентность данных в таблице БД. Есть два типа блокировок: оптимистическая и пессимистическая.
Из названия можно догадаться, что они предлагают две разных стратегии для поддержания целостности данных. Оптимистическая блокировка нацелена на неблокирующий сценарий, а пессимистическая наоборот на блокирующий.
Они обе решают проблему «потерянного изменения» (так называемый, lost update). Приведу пример. Предположим, что вы мамочка‑шопоголик на wildberries. Вы сделали два заказа, счет был выставлен, но разбит на разные транзакции для разных заказов.
Транзакции начали выполняться одновременно. Обе считали данные, обе начали выполнять бизнес‑логику и обе завершились. Вроде бы все гуд? Где подвох?
Но проблема в том, что если транзакция по первому заказу выполнилась быстрее, чем транзакция по второму заказу, то изменения первой транзакции будут перетерты изменениями второй — как будто первого заказа вообще и не было.
С проблематикой ознакомились, поэтому можно пойти дальше.
Оптимистическая блокировка
Это такой вид блокировки, который не блокирует запись на чтение или изменение, как в пессимистической блокировке.
Прежде всего, это подходит тем приложениям, которым промежуточное состояние важно, и они больше читают данные, чем изменяют их.
Пессимистическая блокировка
Это такой вид блокировки, который лочит запись до тех пор, пока не завершится транзакция. Пока запись удерживается, остальные пользователи ожидают, когда можно будет захватить запись. Если ожидание слишком долгое, то будет выброшено исключение LockTimeoutException.
Время ожидания можно изменять вручную при создании блокировки с помощью добавления Map, в котором есть ключ jakarta.persistence.lock.timeout. Это исключение помечает транзакцию, как rollback.
21.) Некоторые спрашивают про РеквизитВЗначение.
РеквизитФормыВЗначение() (нужен контекст) - Этот метод будет отрабатывать с данными, взятыми из формы, т.е. еще не записанными в базу.
Для того, чтобы измененные данные вернуть на форму, используется метод ЗначениеВРеквизитФормы().
ДанныеФормыВзначение() - В отличие от метода управляемой формы РеквизитФормыВЗначение() - процедура глобального контекста ДанныеФормыВЗначение() может работать без контекста формы, но именно поэтому, в частности, ей необходимо указывать тип конвертируемых данных.
22.) Как проверить битую ссылку?
ПолучитьОбъект()
23.) Неявный join Ссылка?
Например связь Объекта и ТЧ.
24.) Кластерный индекс?
Может быть это имеется ввиду составной или покрывающий...