Имя: Пароль:
1C
1С v8
Исправление выгрузки списка сотрудников.
0 Aleksandra Junior
 
naïve
21.05.24
08:11
Имеется результат запроса в ТЗ, у меня два файла тз1.VT_ и тз2.VT_.

Нужно к нему добавить колонку Состояние , которое можно  получить  следующим кодом:

МассивСотрудников = Новый Массив; 
ДатаАктуальности = ТекущаяДата(); 
Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл 
МассивСотрудников.Добавить(СтрокаТаблицы.Ссылка);  
КонецЦикла;  

ТаблицаСостояния = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, "Состояние", ДатаАктуальности);				  


Я сделала с помощью запроса, но мне сказали нужно в консоле кода, кодом. Не понимаю, как обратиться к файлам таблицы значений из консоли кода, в 1с всего две недели, ничего толком не понимаю. Пробовала ЗагрузитьИзФайла(), не работает. Пните меня пожалуйста в каком направлении думать...
1 Kongo2019
 
21.05.24
08:11
ТЗ то где находятся?
2 DJ Anthon
 
21.05.24
08:11
у файлов нет колонок
3 Волшебник
 
21.05.24
08:12
(0) Когда пишете программный код, то соблюдайте "лесенку" (отступы)

Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл 
	  МассивСотрудников.Добавить(СтрокаТаблицы.Ссылка);  
КонецЦикла;
4 Kongo2019
 
21.05.24
08:12
(2) Файле то нет, но как-то она эти ТЗ гоняет.
5 Волшебник
 
21.05.24
08:13
(0) Надо все ТЗ загнать во временные таблицы в запрос.

Далее сделать запрос к справочнику Сотрудники (или к основной ТЗ с сотрудниками) и левое соединение с дополнительными ТЗ
6 Kongo2019
 
21.05.24
08:14
(5) Так по условию задачи незя запрос использовать.
7 Волшебник
 
21.05.24
08:15
(6) Плевать на условия задачи и запрет на инструменты. Хочешь жить — умей вертеться.
8 Волшебник
 
21.05.24
08:16
Кстати, "сказали, что нужно в консоле кода, кодом."

Ну так кодом можно создать Запрос
9 Kongo2019
 
21.05.24
08:17
(8) Это как?
10 Волшебник
 
21.05.24
08:18
(9)
Запрос = Новый Запрос("");
11 Kongo2019
 
21.05.24
08:20
(10) Ха, так это запрос получится.
12 Волшебник
 
21.05.24
08:38
(11) Не согласен.
13 SleepyHead
 
гуру
21.05.24
08:44
(0)

МассивСотрудников = ВашаТаблицаЗначений.ВыгрузитьКолонку("Ссылка");
14 Aleksandra Junior
 
naïve
21.05.24
09:33
(1) Я не знаю((( Всё что у меня есть это два файла, которые я изначально загрузила в консоль запросов и сделала так, как посоветовал Волшебник))
15 Волшебник
 
21.05.24
09:35
(14) Лесенку добавили? Это прекрасно!
16 Aleksandra Junior
 
naïve
21.05.24
09:36
(15) Про лесенку тоже поняла, исправлюсь. Я про "Надо все ТЗ загнать во временные таблицы в запрос"
17 Климов Сергей
 
21.05.24
09:45
(16) Примерно так:
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |    ТЧ.Номенклатура КАК Номенклатура
    |ПОМЕСТИТЬ втТЧ
    |ИЗ
    |    &ТЧ КАК ТЧ
...
Запрос.Параметры.Вставить("ТЧ", МойДокумент.МояТабличнаяЧасть.Выгрузить());
18 dmt
 
21.05.24
09:52
(0) 1. обходишь основную таблицу, для каждой строки которой
2. выполняешь ТаблицаСостояний.НайтиСтроки(Новый Структура("Сотрудник", СтрокаОсновной.Сотрудник)) - находишь состояние сотрудника,
3. которое записываешь в строку основной таблицы
19 Волшебник
 
21.05.24
10:19
(18) Для ускорения во второй таблице лучше сначала добавить индекс по "Сотрудник":

ТаблицаСостояний.Индексы.Добавить("Сотрудник");
20 dmt
 
21.05.24
10:51
(19) лишь бы не возникла привычка к преждевременной оптимизации
21 Волшебник
 
21.05.24
11:41
(20) Мы с Вами согласны!

Преждевременная оптимизация — это процесс оптимизации кода или системы, который выполняется на ранних стадиях разработки, до того как будут понятно, где на самом деле находятся узкие места и насколько они критичны. Термин стал популярен благодаря цитате Дональда Кнута: "Преждевременная оптимизация — корень всех зол" (в оригинале: «Premature optimization is the root of all evil»).

________________________________________________________________________________________________
### Почему оптимизация может быть проведена раньше положенного?

1. Перфекционизм: Разработчики иногда стремятся написать идеально оптимизированный код с самого начала, стремясь к максимальной эффективности.

2. Навыки и привычки: Некоторые разработчики, особенно с опытом работы в системах, где производительность имеет приоритет, по привычке могут пытаться оптимизировать всё.

3. Ложные предположения: Интуиция или экспертное мнение могут подсказывать, что определённые участки кода могут стать узкими местами, даже если фактических доказательств этого нет.

4. Неопытность: Менее опытные разработчики могут переоценить или недооценить важность оптимизации на ранних стадиях.

________________________________________________________________________________________________
### Минусы преждевременной оптимизации:

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

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

3. Увеличение количества багов: Сложный и оптимизированный код может быть менее устойчивым и более подверженным ошибкам.

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

5. Меньше времени на реальные улучшения: Фокус на раннюю оптимизацию может отнимать время от более важных аспектов разработки, таких как архитектура системы, пользовательский интерфейс и возможности.

6. Невозможность предугадать узкие места: Без реального использования и нагрузки сложно точно определить, где именно возникают проблемы с производительностью. Часто они проявляются в неожиданных местах.

________________________________________________________________________________________________
### Подход к оптимизации:

Лучший подход к оптимизации — это частичная оптимизация и профилирование:

1. Сначала функционал: Сначала реализовать функциональные требования проекта.

2. Профилирование кода: Использование инструментов профилирования (замер производительности), чтобы точно определить, где находятся узкие места.

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

________________________________________________________________________________________________
Таким образом, разумный подход к оптимизации заключается в том, чтобы сначала разработать работающий продукт, а затем определить и исправить реальные проблемы с производительностью.
22 dmt
 
21.05.24
15:48
(21) это чатгпт теперь так формулирует? мое почтение...
23 Serg_1960
 
21.05.24
16:41
(16) "Надо все ТЗ загнать во временные таблицы в запрос"...
Погуглите в конфигурации подстроку "КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(" - в типовой конфигурации много примеров для самообучения.