0. YPermitin 7846 14.02.20 07:52 Сейчас в теме

Код разработчика в зависимости от опыта работы

Пятничный пост! Как меняется код разработчика в зависимости от опыта работы.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. pm74 165 14.02.20 08:17 Сейчас в теме
Оо! про кодинг ! Сейчас станут набИгать.
Пошел за попкорном.
gigapevt; portwein; acanta; bulpi; json; PhoenixAOD; narutouzumaki_13; YPermitin; +8 Ответить
2. YPermitin 7846 14.02.20 08:18 Сейчас в теме
(1) на старт, внимание... !!! :)
portwein; bulpi; awk; PhoenixAOD; +4 Ответить
4. PhoenixAOD 59 14.02.20 08:25 Сейчас в теме
(2)
Прикрепленные файлы:
HAMAZ; user746566; bulpi; awk; wowik; YPermitin; +6 Ответить
6. akpaevj 86 14.02.20 08:52 Сейчас в теме
(2) Count(*) =)
DrAku1a; purgin; dvissarov5; bulpi; Jimbo; Painted; YPermitin; +7 Ответить
9. nvv1970 14.02.20 08:58 Сейчас в теме
(6) очень длительная операция на больших таблицах и плохие последствия после вымывания кэша. Статистика СУБД - не универсально, не точно, но рулит.
Решение зависит от контекста.
akpaevj; YPermitin; +2 Ответить
11. akpaevj 86 14.02.20 09:06 Сейчас в теме
(9) Безусловно, надо исходить из контекста задачи. Просто привёл пример общего, относительно быстрого способа получения количества строк. В ситуациях с колонками с разрешенным NULL Count(ColumnName) не даст ожидаемого результата, поэтому и написал Count(*). Первое - это подсчет значений, второе - подсчет строк.
bulpi; Jimbo; zqzq; YPermitin; +4 Ответить
50. FesenkoA 43 14.02.20 10:55 Сейчас в теме
А почему уровни роста только вверх начиная с самого простого? Мы с коллегами балуемся иногда, придумывая максимально неоптимальные решения проблемы:

-1 уровень ("да я в этой 1С уже пол года данные вбиваю, не посчитаю что ли"):
Итого=0;
 Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
                |       Номенклатура.ссылка
		|	Сумма(1) КАК КоличествоЭлементов
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
                |СГРУППИРОВАТЬ ПО
	        |Номенклатура.Ссылка";	
	РезультатЗапроса = Запрос.Выполнить().Выгрузить();
        Для каждого строкаТЗ из РезультатЗапроса цикл
              Итого=Итого+РезультатЗапроса.КоличествоЭлементов;
        Конеццикла;
	
	Возврат Итого;
Показать


Коллеги, продолжайте)
user783353; portwein; igee12; bulpi; wowik; sogesti; acanta; +7 Ответить
52. acanta 73 14.02.20 11:02 Сейчас в теме
(50) это не оптимально? Странно.. у меня работает.
YPermitin; +1 Ответить
56. FesenkoA 43 14.02.20 12:03 Сейчас в теме
(52) Можно отобрать записи из ЖР по добавлении справочника нового. Можно собрать статистику открытия форм и сгруппировать. Можно сделать перекодирование справочника (установить коды) и взять Число(ПоследнийКод)
const000; ipoloskov; bulpi; acanta; YPermitin; +5 Ответить
208. shard 251 21.02.20 11:36 Сейчас в теме
(56) если в состоянии собрать статистику открытия форм, то опыт уже есть, маловероятно что будет так реализовано. Про перенумерацию и максимальный номер уже ближе. Как вариант еще можно добавить реквизит "номер товара" в конфигурацию, заставить пользователя его заполнять, а для подсчета брать максимальный и вычеркивать неиспользуемые номера в цикле с обязательным применением найтиПоРеквизиту. Написал и самому страшно стало....
223. FesenkoA 43 27.02.20 17:33 Сейчас в теме
(208) Есть такая штука "негативный опыт". Это когда человек научился но "не тому" или неправильно. А статистика открытия форм реализуется проще простого: создаем документ "открытие формы" с регистром накопления "открытые формы", остаточным. при открытии формы - создается документ с событием "открытие, добавление" и проводится, а при правильном закритии - проводится еще раз чтобы зафиксировать время закрытия. Ну а в конце месяца создаем документ "закрытие открытия форм" который делает минусовые движения по регистру... всего то
210. DrAku1a 1313 24.02.20 14:47 Сейчас в теме
Это шедевр)) Но похоже на путь с 1 на 2 уровень.
211. Hatson 402 26.02.20 16:38 Сейчас в теме
(50)
Сумма(1) КАК КоличествоЭлементов


*Бздынь!*

Количество(1) КАК КоличествоЭлементов

Сумма(1) почему-то иногда вызывает переполнение чего-то там...
54. ImHunter 176 14.02.20 11:32 Сейчас в теме
Олдскульный товарищ, наверное, написал бы:
ВЫБРАТЬ КОЛИЧЕСТВО(1) ... 
e.kogan; Hatson; shard; ipoloskov; ice-net; vano-ekt; YPermitin; acanta; +8 Ответить
61. sikuda 616 14.02.20 12:27 Сейчас в теме
(1) Огромный опыт (Oldschool) - Последний вариант расположенный в модуле с опцией Повторного использования возвращаемых значений ;)
e.kogan; kuzyara; gubanoff; YPermitin; acanta; +5 Ответить
70. vano-ekt 545 14.02.20 12:55 Сейчас в теме
ВЫБРАТЬ
	КОЛИЧЕСТВО(0) КАК Элементов
ИЗ
	Справочник.Номенклатура


а лучше засунуть в экспортную функцию, куда передавать имя таблицы, чтоб код не повторять
и в привилегированном режиме, мало ли какие RLS'ы включены :-D
"ВЫБРАТЬ 	КОЛИЧЕСТВО(0) КАК Элементов ИЗ "+ИмяТаблицы
almierm; ipoloskov; acanta; +3 Ответить
209. DrAku1a 1313 24.02.20 14:43 Сейчас в теме
(70)
ВЫБРАТЬ
    КОЛИЧЕСТВО(*)
ИЗ
    Справочник.Номенклатура
ccapt; YPermitin; +2 Ответить
104. oleganatolievich 144 14.02.20 17:29 Сейчас в теме
1) почему эксперт будет лезть в базу, в обход SQL, используя ADO? зачем?
в результате запроса на сервак всегда возвращается 1 число, а не целый список.
зачем? просто потому что можешь? в газенваген такого разработчика.
если Linux используется на сервере приложений 1С? я бы не стал использовать платформозависимые инструменты.

2) мля, кэш на список номенклатуры, вы поехавшие что-ли?
кэширование вызывает массу проблем - показатель надо вечно обновлять делая select count(1) from table.
и что опаснее - посмотреть 1 раз кол-во номенклатуры, или после каждой записи номенклатуры проверять ее количество?
по-моему такое делать надо тупо on request, то есть в отчете.

3) никто еще не сказал что

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
ВыборкаДетальныеЗаписи.Следующий();

КоличествоЭлементов = ВыборкаДетальныеЗаписи.КоличествоЭлементов;

если агрегационную функцию count сделать на пустом справочнике она вернет null, и что будет в количество элементов? null? тут просто без комментариев. 10-часовая версия видео про "лох-пидр"
taurus__; const000; bliver; veretennikoff; +4 Ответить
106. VmvLer 14.02.20 17:34 Сейчас в теме
(104) вам имеет смысл подготовить доклад на конференцию, тема
Чтобы понять конец, ты должен понять начало.
(с)о-з-д-р
107. oleganatolievich 144 14.02.20 17:36 Сейчас в теме
(106)
онять начало.
(с)о-з-д-р

лол шта?
108. YPermitin 7846 14.02.20 17:37 Сейчас в теме
(107) уважаемый Vmvler Вам говорит, что нужно делиться знаниями на конференциях и проявлять там свой профессионализм :)
109. oleganatolievich 144 14.02.20 17:39 Сейчас в теме
(108) ха, эти вещи не требуют глубоких спец. знаний.
214. Hatson 402 26.02.20 16:57 Сейчас в теме
(104)
если агрегационную функцию count сделать на пустом справочнике она вернет null, и что будет в количество элементов? null? тут просто без комментариев. 10-часовая версия видео про "лох-пидр"


Это сакральные знания! Потому что никто еще не видел пустых справочников "Номенклатура" в реальных компаниях )))
YPermitin; +1 Ответить
216. oleganatolievich 144 26.02.20 19:11 Сейчас в теме
(214) все это про защиту от дурака. она должна быть в коде по умолчанию.
3. Msyrkin 14.02.20 08:24 Сейчас в теме
"От большого ума лишь тюрьма да сума"
xantif_2000; Drivingblind; YPermitin; +3 Ответить
5. sapervodichka 3033 14.02.20 08:46 Сейчас в теме
Ежедневно «стремясь к лучшему, мы часто портим хорошее» (У. Шекспир. "Король Лир"). Поэтому согласен с вами, надо ощущать состояние «вполне достаточно», и не стремиться совершенствовать код без необходимости. «Всегда недостаточно» - это уже горе от ума разработчика, с таким подходом во время не сдать работу.
xantif_2000; bulpi; zqzq; Drivingblind; davdykin; YPermitin; +6 Ответить
8. YPermitin 7846 14.02.20 08:57 Сейчас в теме
(5)
с таким подходом во время не сдать работу.


Внутреннего перфекциониста не все могу похоронить ))))
sapervodichka; +1 Ответить
7. nvv1970 14.02.20 08:54 Сейчас в теме
Нужно было привилегированный добавить последнему, чтобы исключить лишение соединения.
А так - да. Простота - наше все.
igee12; sapervodichka; YPermitin; +3 Ответить
10. wowik 740 14.02.20 09:04 Сейчас в теме
Грамоты будут?) я все стадии в жизни делал, мне пожалуйста выпишите все грамоты)
sogesti; YPermitin; +2 Ответить
12. coolo1 59 14.02.20 09:24 Сейчас в теме
Ну вообще правильней тогда уж использовать модуль повторного использования.
И при удалении добавлении элементов справочника обнулять кэш повторно используемых.
YPermitin; +1 Ответить
14. YPermitin 7846 14.02.20 09:27 Сейчас в теме
(12) ОбновитьПовторноИспользуемыеЗначения?

Но она очищает ВСЕ сохраненные значения. Нужно будет к ней пригородить немного костылей, чтобы очищать кэш точечно.
Но вообще да, можно и до рабочего варианта довести.
74. awk 697 14.02.20 13:05 Сейчас в теме
(12)Она обнуляет только кэш текущего сеанса, другие сеансы не сбросятся...
13. Hans 1 14.02.20 09:27 Сейчас в теме
Вариант писать в константу, или регистр сведений при удалении или создании нового элемента это какой уровень?
YanTsys; YPermitin; +2 Ответить
16. YPermitin 7846 14.02.20 09:31 Сейчас в теме
(13) я бы отнес его к уровню между джуном и мидлом, потому что тогда такой тяжелый запрос для подсчета количества будет прям очень "нагибучим" в базе. Если, конечно, справочник достаточно большой.
15. brr 179 14.02.20 09:29 Сейчас в теме
После выпитой чашки кофе родилось такое решение:

Добавить 2 подписки на события, хранить количество номенклатуры в служебном регистре или константе, при добавлении элемента прибавлять количество, а при удалении уменьшать. Сделать отключаемым, при массовой загрузке отключать и количество пересчитывать самостоятельно.
slauter77; YPermitin; +2 Ответить
17. YPermitin 7846 14.02.20 09:33 Сейчас в теме
(15) вариант хорош. Но почему в регистр сведений, а не в регистр накопления тогда? В регистре накопления можно сделать агрегат на весь период и обновлять его для более эффективного получения данных. Регистр оборотный, т.к. остатки по этому показателю никому не нужны :)

Вот это костыли я описал!
18. brr 179 14.02.20 09:36 Сейчас в теме
(17) У нас уже есть рассчитанный итог. Хотя, вариант с оборотным регистром, да еще в режиме разделенных итогов, будет лучше себя чувствовать при параллельной работе пользователей.
YPermitin; +1 Ответить
19. brr 179 14.02.20 09:39 Сейчас в теме
(18) Нет, оборотный регистр тоже плохо, нужен регистратор, всё усложняется.
YPermitin; +1 Ответить
21. YPermitin 7846 14.02.20 09:40 Сейчас в теме
(19) да, так оно. Один костыль на другой :)
55. YanTsys 12 14.02.20 11:55 Сейчас в теме
(21) Хммм... вроде речь про экспертов шла...
Идея о переносе затратного по времени процесса на отдельные операции идея правильная, но
есть варианты когда контрагенты могут появиться/исчезнуть в базе мимо вызова вашего кода который будет вести подсчет.
Поэтому мне больше всего нравится вариант с константой которая будет меняться в транзакции, или пусть даже ваш вариант с регистром, но при этом дополнительно должно вызываться регламентное задание по расписанию которое будет заполнять константу по запросу.
YPermitin; +1 Ответить
98. brr 179 14.02.20 16:29 Сейчас в теме
102. YanTsys 12 14.02.20 16:52 Сейчас в теме
(98) Например при восстановлении битых ссылок при тестировании и исправлении базы подписки сработают?
148. brr 179 17.02.20 09:11 Сейчас в теме
(102)Нет, не сработают, такие случаи нужно обрабатывать отдельно
150. YanTsys 12 17.02.20 10:25 Сейчас в теме
(148) Про это я и написал в (55)
20. &rew 11 14.02.20 09:40 Сейчас в теме
Уровень "Просветление". Вывести список и отнять 1)))
Alxesp; const000; xantif_2000; nixen88; bulpi; SlavaKron; Painted; wowik; YPermitin; +9 Ответить
22. YPermitin 7846 14.02.20 09:43 Сейчас в теме
(20) эта магия достойна отдельного выступления на Infostart Event в категории Highload!
ccapt; &rew; +2 Ответить
83. Painted 30 14.02.20 14:12 Сейчас в теме
(20) У большого справочника список можно выводить целый день. За это время новые элементы появятся.
84. YPermitin 7846 14.02.20 14:14 Сейчас в теме
(83) &rew как-раз успеем подготовить доклад и выступить.
23. qwinter 617 14.02.20 09:50 Сейчас в теме
Для Oldschool логичнее выбирать пометку удаления, чем ссылку)))
24. YPermitin 7846 14.02.20 09:52 Сейчас в теме
91. qwinter 617 14.02.20 14:49 Сейчас в теме
(24) Ссылка 16 байт, Пометка удаления 1 байт. Я конечно понимаю, что это всего лишь 1 мегабайт на миллионный справочник, но современную тенденцию к наплевательскому отношению к оперативной памяти не поддерживаю.
100. akpaevj 86 14.02.20 16:48 Сейчас в теме
(91) При подобных запросах dbengine будет читать данные с диска экстентами (если кеш пуст), так что разницы вообще никакой нет. А на клиент у вас и так всего одна запись вернется. Да и при не подобных запросах разницы не будет. Читаться будут либо страницы, либо сразу экстенты.
28. akpaevj 86 14.02.20 10:07 Сейчас в теме
(23) Для oldschool сразу надо обратить внимание на архитектуру, в ней явно что-то не так. Для ТОЧНОГО подсчета строк, (ничего другого в голову не приходит) можно использовать дополнительный, инкрементный bigint столбец с блокирующим чтением (для точного подсчета, вероятно, всегда придется жертвовать параллельностью). А вообще, я бы обратил внимание на архитектуру.
YPermitin; +1 Ответить
25. Synoecium 675 14.02.20 09:55 Сейчас в теме
Что-то не понял, зачем сеньор бы городил регламентные задания с регистрами сведений. Решается легко по аналогии с параметрами сеанса. Заводим справочник с кэшированными значениями и признаком актуальности кэша (2 поля: Значение - произвольный тип и Актуальность - булево), на каждый показатель заводим предопределенное значение. Далее в общем модуле делаем функцию получения значения (в нашем примере количество строк в справочнике), если значение актуально, то выдаем его, если неактуально, то пересчитываем (тут будет задержка при первом расчете, зато никаких регл. заданий). Ну и осталось снимать флаг актуальности на значениии, просто вешаем обработку на события удаления и добавления, которое снимает флаг.
Все.
Krio2; YPermitin; +2 Ответить
26. YPermitin 7846 14.02.20 09:58 Сейчас в теме
(25) тут надо смотреть на контекст. Но если номенклатура добавляется / удаляется часто, то смысла в таком кэшировании будет мало, потому что оно часто будет неактуальным. Не будет стабильности в скорости получения данных. То оно быстро, то медленно. А если пересчет запущен параллельно от нескольких пользователей и так далее.

Но еще раз напоминаю, что тут нет контекста. Это шуточная статья ))))
27. Dach 294 14.02.20 10:05 Сейчас в теме
"God 'mode"

Идем в БД. Городим у таблицы справочника собственный primary key, который будет равен guid + № п/п. Пишем триггер и хранимку, которая обеспечит его заполнение. Запрещаем удалять из справочника элементы, разрешаем только добавлять и помечать на удаление. Далее селект 1 сорт бай пр. кей аск.

Тоже самое можно будет и на 1С, через подписку и отдельный индексируемый реквизит № п/п

Наслаждайтесь
slauter77; bulpi; wowik; user675801_ev1999; YPermitin; +5 Ответить
29. YPermitin 7846 14.02.20 10:07 Сейчас в теме
(27) добавлю.

Чтобы собственный первичный ключ не слетал при реструктуризации сделаем триггер, который при изменении платформенного ключа / его пересоздании - пересоздавал его с нашими настройками.

P.S. Вот это GOD MODE так GOD MODE.
31. Dach 294 14.02.20 10:15 Сейчас в теме
(29) да, это прям пушка)) короч полет фантазии ничем не ограничен, кроме бюджета )))
user811769; Drivingblind; YPermitin; +3 Ответить
32. YPermitin 7846 14.02.20 10:16 Сейчас в теме
(31) да. Бюджета и забористой травой :) (шутка)
103. YanTsys 12 14.02.20 17:21 Сейчас в теме
(27) Это скорее "Frick mode" :) особенно насчет " Запрещаем удалять из справочника элементы" кроме того если я правильно помню редактирование SQL базы напрямую это нарушение лицензии 1с...
30. psplehanov 14.02.20 10:13 Сейчас в теме
Уважаемый автор, вы забыли еще один распространенный уровень:
Не смог выполнить задачу!
shard; bulpi; EVKash; wowik; sogesti; +5 Ответить
35. YPermitin 7846 14.02.20 10:16 Сейчас в теме
(30) да, это мое фиаско :)

Что-то я не подумал, что так может быть.
46. psplehanov 14.02.20 10:34 Сейчас в теме
(35) Кроличья нора еще глубже.

Вспомнил еще уровень

Функция КоличествоНоменклатуры() Экспорт

Возврат 42;

КонецФункции
ipoloskov; nixen88; user811769; bulpi; wowik; uno-c; sogesti; +7 Ответить
47. YPermitin 7846 14.02.20 10:38 Сейчас в теме
(46) после такого хочется сразу включать это видео.

https://www.youtube.com/watch?v=1KPbAIjZXHE

Опять)
146. bpc222 2165 17.02.20 08:36 Сейчас в теме
(46)

:))))))))

Не, так это норм еще...
Более продвинутый уровень:

Функция КоличествоНоменклатуры() Экспорт

      Возврат ПолучитьСорокДва();

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

Функция ПолучитьСорокДва()

      Возврат 42;

КонецФункции
Показать
ipoloskov; +1 Ответить
60. uno-c 117 14.02.20 12:23 Сейчас в теме
(35)Вы скромничаете? )
В статье это между строк: ни один вариант не решает поставленной задачи в большинстве прикладных решений на платформе 1С
YPermitin; +1 Ответить
36. acanta 73 14.02.20 10:17 Сейчас в теме
(30) это следующий после олдскульного?
Merkalov; +1 Ответить
33. Климов Сергей 14.02.20 10:16 Сейчас в теме
Фух, дочитал до конца и меня попустило. Таки я олдскул а не миддл! :)
xantif_2000; dinopopyys; zqzq; +3 Ответить
37. YPermitin 7846 14.02.20 10:18 Сейчас в теме
(33) это достойный уровень!
85. Painted 30 14.02.20 14:19 Сейчас в теме
(33)
Таки я олдскул а не миддл!
Хммм! А какая разница? Код одинаковый. ))
99. Климов Сергей 14.02.20 16:30 Сейчас в теме
(85) Разница принципиальная! Путь достижения цели может быть важнее цели :)
Движение — всё, цель — ничто! (с)
34. vadver 38 14.02.20 10:16 Сейчас в теме
А вот нифига не олдскульный код :)
Настоящий олдскул написал бы так:
	Если ВыборкаДетальныеЗаписи.Следующий() Тогда
	
	        Возврат ВыборкаДетальныеЗаписи.КоличествоЭлементов;
        КонецЕсли;
	
	Возврат 0;

А то мало ли что... :)
e.kogan; oleganatolievich; babys; veretennikoff; bulpi; memb3r; user1025849; wowik; uno-c; Merkalov; acanta; YPermitin; +12 Ответить
38. YPermitin 7846 14.02.20 10:18 Сейчас в теме
40. dhurricane 14.02.20 10:23 Сейчас в теме
(34) (38) А вот и нет. Выборка из результата запроса всегда будет иметь ровно одну запись при любом наполнении справочника.
ccapt; uno-c; Климов Сергей; +3 Ответить
41. vadver 38 14.02.20 10:25 Сейчас в теме
(40) Даже комментировать не буду
43. YPermitin 7846 14.02.20 10:26 Сейчас в теме
(40) так это ж шутейка была)
44. dhurricane 14.02.20 10:28 Сейчас в теме
(43) Блин, прошу прощения, детектор шуток барахлит.
uno-c; YPermitin; +2 Ответить
45. vadver 38 14.02.20 10:30 Сейчас в теме
(43) Некоторое время назад мне пришлось возиться с сильно замусоренным справочником номенклатуры в ERP (около 200 тыс. элементов), в котором еще при внедрении сильно ошиблись с единицами измерения, да еще их и дорабатывали потом...
Так что кому-как, а мне очень-таки жизненный пример ;)
48. Merkalov 3 14.02.20 10:45 Сейчас в теме
(40)
(34) (38) А вот и нет. Выборка из результата запроса всегда будет иметь ровно одну запись при любом наполнении справочника.

*пятница*
Для не очень быстрых как я поясню - выборка в ДАННОМ случае, при ТАКОМ запросе вернет всегда 1 строку, а не любая выборка из любого запроса...
ccapt; babys; pm74; YPermitin; acanta; +5 Ответить
212. Hatson 402 26.02.20 16:47 Сейчас в теме
(34) покоробило )) А тем временем "скан тэйбл" уже случился и уже как бы пофиг на курсоры.

наилучший вариант был

Функция КоличествоСтрокВТаблице() Экспорт
Возврат 42;
КонецФункции
39. Dach 294 14.02.20 10:20 Сейчас в теме
С утра в пятницу под кофеек запрограммировать сферического коня в вакууме, ммм, что может быть лучше)) Спасибо за отличный пятничнопост, Юрий! Ну а теперь за рутину - ревьюить код джунов и разгребать авгиевы конюшни ошибок в нетленке
YPermitin; +1 Ответить
42. YPermitin 7846 14.02.20 10:26 Сейчас в теме
49. KapasMordorov 428 14.02.20 10:55 Сейчас в теме
Вспомнилась вот эта тема:
Задача с экзамена 1С Эксперт. (частично обсуждение было тут (форум Гилева))

Текст задачи:
"В базе работают 1000 пользователей. Есть регистр сведений в нем 100 млн записей. запрос select count выполняется t= 60 сек. Необходимо сделать так, чтобы данные были получены за t = 1c."

Можете ли Вы подсказать, пожалуйста, в каком направлении мыслить/искать? Преподаватель говорит, есть порядка 12 способов решить задачу.

https://forum.infostart.ru/forum9/topic172403/
62. YPermitin 7846 14.02.20 12:35 Сейчас в теме
(49) не читал, спасибо. Надо глянуть)
116. user633166 6 14.02.20 19:29 Сейчас в теме
Рабочая пятница закончилась и иссякла река серьёзного обсуждения :) поста, созданного ради шутки. Спасибо автору - очень интересно наблюдать за такого рода дискуссией... В надежде, что в понедельник увижу продолжение и будет решение, вспомнившейся (49), из постановки которой непонятно, что под 12 способами понимал автор того вопроса, то ли просто получить решение (то, что собственно и в этой публикации является целью и где-то около того вариаций уже прозвучало) или 12 :), способных за секунду добиться желаемого результата? Во втором случае стоит найти его и "заставить" это сакральное знание распространить... Со своей стороны
могу предложить поискать решение по следующему алгоритму: разделить размер таблицы на размер записи.
YPermitin; +1 Ответить
117. YPermitin 7846 14.02.20 19:31 Сейчас в теме
(116) отличная идея. Конечно, точное количество записей мы не получим, но приближенное значение можно. Нужно только учесть BLOB'ы и др.

+. Это идея для статьи! :)
122. user633166 6 15.02.20 09:54 Сейчас в теме
(117) Если ставить "серьёзные" цели, пытаться найти "общее" решение :), то конечно требуется полный разбор, какая там структура записи. Но как мне кажется, что если есть "реальная" такая задача, то для оптимизации имеет смысл "упростить" структуру и все BLOB'ы и др. исключить (переместить в другую таблицу).
118. YPermitin 7846 14.02.20 19:34 Сейчас в теме
(116) и спасибо на добром слове.

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

Опытные же разработчики, которые весь этот путь уже прошли, решают задачу самым простым и быстрым способом, если этого не требуют другие условия.

Всем добра, кто прочитает этот комментарий :)
Чем меньше токсичности в ИТ, тем лучше! )))
224. ccapt 13.03.20 22:56 Сейчас в теме
если подойти к заданию пунктуально, количество записей известно уже в постановке задачи. другой вопрос, как добиться задержки в одну секунду.
225. e.kogan 1852 17.03.20 15:16 Сейчас в теме
(224) Сразу видно опытного человека )
226. ccapt 18.03.20 12:50 Сейчас в теме
и это не говоря о том, что нет никаких ограничений на то, что такое данные
51. DoctorRoza 14.02.20 11:00 Сейчас в теме
Судя по статье, я или Мидл или ОлдСкул!
wowik; YPermitin; +2 Ответить
58. buganov 144 14.02.20 12:09 Сейчас в теме
53. VmvLer 14.02.20 11:28 Сейчас в теме
думаю, скоро можно будет писать код с бодуна.

КолВоТвары = Даша.ОтветНаВопрос("Але гараж, скока у нас номклатур - быра посчитай");

и это будет самое оптимальное решение и не важно как она там посчитает.
user612295_death4321; bulpi; user605780_L.Alexander8; YPermitin; +4 Ответить
57. buganov 144 14.02.20 12:09 Сейчас в теме
Морозова не удовлетворит решение эксперта)) Так что это скорее претендент :D
59. uno-c 117 14.02.20 12:13 Сейчас в теме
Больше похоже на пятничный тест "кто первый заметит, что нет ни одного правильного решения".
YPermitin; +1 Ответить
63. YPermitin 7846 14.02.20 12:39 Сейчас в теме
(59) нет, нет. В статье ничего такого.

Вообще, все решения рабочие в тои или иной степень.
Но если бы мне такую задачу дали в реальности, то я бы спросил "А зачем?"
68. uno-c 117 14.02.20 12:52 Сейчас в теме
(63)Задача вполне себе практичная: посчитать количество SKU, с которым имела дело контора в своей практике. Например, чтобы в презентацию конторы вставить - чем больше SKU, тем лучше, главное что это правда. Но чтобы не соврать - решать надо именно поставленную задачу.
подсчитать количество элементов справочника "Номенклатура" в информационной базе
69. acanta 73 14.02.20 12:54 Сейчас в теме
С характеристиками или без?
(68)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день