Альтернативный вариант расчета возраста (лет, месяцев, дней) запросом

Публикация № 1041981

Разработка - Практика программирования

запрос лет месяцев дней возраст

Появилась задача вычислить возраст человека на определенную дату. Сначала был написан вариант кодом, через цикл, но замер производительности показал, что подобное решение "тяжеловесное". Более того, я знаю, что задача будет повторяться, причем данные нужно будет выдавать запросом. Было решено сделать определенный шаблон, на основании которого можно было бы писать другие решения.

Сначала хорошим решением мне показались запросы в этой публикации. Но тестируя на разные случаи (29.02.2016 и 28.02.2017 и тому подобное) получал не совсем верные результаты. + мне сложно было вникнуть во всех хитросплетения и условия, поэтому решил написать свой вариант:

ВЫБРАТЬ
	ГОД(&БольшаяДата) = ГОД(&МеньшаяДата) КАК ГодаРавны,
	МЕСЯЦ(&БольшаяДата) > МЕСЯЦ(&МеньшаяДата) КАК МесяцБольше,
	МЕСЯЦ(&БольшаяДата) = МЕСЯЦ(&МеньшаяДата) КАК МесяцыРавны,
	ДЕНЬ(&БольшаяДата) > ДЕНЬ(&МеньшаяДата) КАК ДеньБольше,
	ДЕНЬ(&БольшаяДата) = ДЕНЬ(&МеньшаяДата) КАК ДниРавны
ПОМЕСТИТЬ Условия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Условия.ГодаРавны КАК ГодаРавны,
	Условия.МесяцБольше КАК МесяцБольше,
	Условия.МесяцыРавны КАК МесяцыРавны,
	Условия.ДеньБольше КАК ДеньБольше,
	Условия.ДниРавны КАК ДниРавны,
	ДЕНЬ(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&БольшаяДата, МЕСЯЦ, -1), МЕСЯЦ)) КАК ПоследнийДеньПредыдущегоМесяца,
	ДЕНЬ(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&БольшаяДата, МЕСЯЦ, -1), МЕСЯЦ)) < ДЕНЬ(&МеньшаяДата) И ДЕНЬ(&БольшаяДата) < 3 КАК ДеньПредыдущегоМесяцаМеньше,
	Условия.ДеньБольше ИЛИ Условия.ДниРавны КАК ДеньБольшеИлиРавен,
	Условия.МесяцБольше ИЛИ Условия.МесяцыРавны КАК МесяцБольшеИлиРавен,
	Условия.ДеньБольше ИЛИ Условия.ДниРавны КАК ПоследнийМесяцПрошел,
	Условия.МесяцБольше ИЛИ Условия.МесяцыРавны И (Условия.ДеньБольше ИЛИ Условия.ДниРавны) КАК ПоследнийГодПрошел
ПОМЕСТИТЬ СложныеУсловия
ИЗ
	Условия КАК Условия
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВЫБОР
		КОГДА СложныеУсловия.ГодаРавны
			ТОГДА 0
		КОГДА СложныеУсловия.ПоследнийГодПрошел
			ТОГДА РАЗНОСТЬДАТ(&МеньшаяДата, &БольшаяДата, ГОД)
		ИНАЧЕ РАЗНОСТЬДАТ(&МеньшаяДата, &БольшаяДата, ГОД) - 1
	КОНЕЦ КАК Лет,
	ВЫБОР
		КОГДА СложныеУсловия.ПоследнийМесяцПрошел И СложныеУсловия.МесяцБольшеИлиРавен
			ТОГДА МЕСЯЦ(&БольшаяДата) - МЕСЯЦ(&МеньшаяДата)
		КОГДА СложныеУсловия.МесяцБольше
			ТОГДА МЕСЯЦ(&БольшаяДата) - МЕСЯЦ(&МеньшаяДата) - 1
		КОГДА СложныеУсловия.ПоследнийМесяцПрошел
			ТОГДА 12 - (МЕСЯЦ(&МеньшаяДата) - МЕСЯЦ(&БольшаяДата))
		ИНАЧЕ 12 - (МЕСЯЦ(&МеньшаяДата) - МЕСЯЦ(&БольшаяДата) + 1)
	КОНЕЦ КАК Месяцев,
	ВЫБОР
		КОГДА СложныеУсловия.МесяцБольшеИлиРавен И СложныеУсловия.ДеньБольшеИлиРавен
			ТОГДА ДЕНЬ(&БольшаяДата) - ДЕНЬ(&МеньшаяДата)
		КОГДА СложныеУсловия.ПоследнийМесяцПрошел И СложныеУсловия.ДеньБольшеИлиРавен
			ТОГДА ДЕНЬ(&БольшаяДата) - ДЕНЬ(&МеньшаяДата)
		КОГДА СложныеУсловия.ДеньПредыдущегоМесяцаМеньше ТОГДА 0
		ИНАЧЕ СложныеУсловия.ПоследнийДеньПредыдущегоМесяца - (ДЕНЬ(&МеньшаяДата) - ДЕНЬ(&БольшаяДата))
	КОНЕЦ КАК Дней	 		
ИЗ
	СложныеУсловия КАК СложныеУсловия

Возможно такой вариант кому-то покажется очевиднее и понятнее. Тестировались различные вариации дат. При этом здесь есть следующее допущение: БольшаяДата всегда больше.

Сверялся с этим онлайн калькулятором, но если кто-то найдет ошибку - жду в комментарии!

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user-z99999 22 11.04.19 11:42 Сейчас в теме
5. lex_hrabovskyi 11.04.19 12:08 Сейчас в теме
(1) запрос видимо проще. а правильнее? я добавил в консоль, поставил: ДР: 12.04.1993, ТД: 11.04.2019 и мне выдало:
25 0 29 12.04.1993 0:00:00
что никак неправильно, потому что должно быть 11 месяцев. стоит проверять дальше первый комментарий?
2. Agregadus 15 11.04.19 11:44 Сейчас в теме
А есть замеры улучшения?

Куда удобнее иметь один универсальный клиент-серверный метод, чем при любом изменении даты рождения в поле на форме, делать серверный вызов, чтоб узнать возраст
4. lex_hrabovskyi 11.04.19 12:06 Сейчас в теме
(2) для меня не было критично, т.к. возраст вычислялся при проведении, т.е. на сервере.
при проведении и 5-разовом использовании метода с циклом замер показывал около 92% от всего времени. правда там и нет "тяжеловесных" операций.
тем не менее разность дат там были маленькие, поэтому циклы не были длительными.
сейчас все вычисление занимает около 30% времени. при этом используется моветон - запрос в цикле. и для пяти дат запрос выполняется 5 раз. преимущество - запрос я перепишу, чтобы передавать просто массивы дат и выполнять запрос 1 раз. с вычислением в цикле такой фокус не получится. разве что выполнять вычисления параллельно, запуская фоновые задания, например.
9. Agregadus 15 11.04.19 12:38 Сейчас в теме
(4) Без замеров сложно оценить целесообразность улучшения.
Мы все помним фразу "Преждевременная оптимизация — корень всех зол".
И если было 0.05 сек, а стало 0.01 сек, стоит ли это того, чтобы улучшать и тратить время, разве нету более проблемных мест в других кусках конфигурации?
Ваши 92% совершенно ни о чем не говорят.
10. lex_hrabovskyi 11.04.19 12:47 Сейчас в теме
(9) целесообразность была в том, чтобы был определенный правильный шаблон, для вычисления возраста именно запросом для использования в будущем.
одна из предполагаемых задач - выдавать список из 500 человек указывая возраст в годах и месяцах на текущую дату. есть разница между 1. рассчитать возраст сразу средствами SQL
2. перебрать все строки выборки/выгрузки, делая вычисления для каждого.
также мне тут напомнили, что сервер предприятия и SQL сервер могут физически на разном железе находиться.

но для локальной задачи "вычислять возраст на сегодня на форме объекта" вполне может хватить и вычисления циклом на клиенте, не спорю.
3. lex_hrabovskyi 11.04.19 11:57 Сейчас в теме
(1) да, типа проще. а правильнее? я добавил в консоль, поставил: ДР: 12.04.1993, ТД: 11.04.2019 и мне выдало:
25 0 29 12.04.1993 0:00:00
что никак неправильно, потому что должно быть 11 месяцев. стоит проверять дальше первый комментарий?
Прикрепленные файлы:
6. duhh 211 11.04.19 12:11 Сейчас в теме
ВЫБРАТЬ
	ВЫБОР
		КОГДА ДЕНЬ(&Д1) > ДЕНЬ(&Д2)
			ТОГДА ДЕНЬ(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Д2, МЕСЯЦ, -1), МЕСЯЦ)) - ДЕНЬ(&Д1) + ДЕНЬ(&Д2)
		ИНАЧЕ ДЕНЬ(&Д2) - ДЕНЬ(&Д1)
	КОНЕЦ КАК Дней,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(&Д2, ГОД, ГОД(&Д2) * -1) < ДОБАВИТЬКДАТЕ(&Д1, ГОД, ГОД(&Д1) * -1)
			ТОГДА 12 - (МЕСЯЦ(&Д1) - МЕСЯЦ(&Д2))
		ИНАЧЕ МЕСЯЦ(&Д2) - МЕСЯЦ(&Д1)
	КОНЕЦ - ВЫБОР
		КОГДА ДЕНЬ(&Д1) > ДЕНЬ(&Д2)
			ТОГДА 1
		ИНАЧЕ 0
	КОНЕЦ КАК Месяцев,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(&Д2, ГОД, ГОД(&Д2) * -1) < ДОБАВИТЬКДАТЕ(&Д1, ГОД, ГОД(&Д1) * -1)
			ТОГДА ГОД(&Д2) - ГОД(&Д1) - 1
		ИНАЧЕ ГОД(&Д2) - ГОД(&Д1)
	КОНЕЦ КАК Лет
Показать
7. lex_hrabovskyi 11.04.19 12:20 Сейчас в теме
(6) круто! конечно в хитросплетениях "почему и зачем что-то добавляется" придется разобраться, но компактный и почти рабочий. внесите еще поправку для случая: Д1 = 31.01.2019 и Д2 = 01.03.2019. сейчас выдает:
-2 13 -1

если это поправится - отличный вариант, для тех кто любит компактность
8. lex_hrabovskyi 11.04.19 12:28 Сейчас в теме
(7) хотя нет. запрос надо пересмотреть. ошибка носит постоянный характер:
Прикрепленные файлы:
11. pun4er 16.04.19 13:32 Сейчас в теме
Спасибо, взял на заметку
12. riposte 306 21.04.19 15:36 Сейчас в теме
Недавно на форуме 1С натыкался и давал ответ. Без всяких циклов.

Процедура ПоказатьРазностьДатНажатие(Элемент)
    Если НЕ ЗначениеЗаполнено(ДатаНачала) ИЛИ НЕ ЗначениеЗаполнено(ДатаКонца) Тогда
        ЭлементыФормы.Н_РазностьСтрокой.Заголовок = "Не указана дата";
        ЭлементыФормы.Н_РазностьСтрокой.ЦветТекста = ЦветаСтиля.ЦветОтрицательногоЧисла;
        Возврат;
    КонецЕсли;
    ЭлементыФормы.Н_РазностьСтрокой.ЦветТекста = ЦветаСтиля.ПоясняющийТекст;
    
    РазностьДат = ДатаКонца - ДатаНачала;
    Мод = ?(РазностьДат < 0, -1, 1);  // Модификатор
    // Если Мод > 0 - значит ДатаКонца - будущее, иначе - прошлое и считать будем в обратную сторону.
    
    Лет = 0;
    Месяцев = 0;
    Дней = 0;
    
    Если Мод > 0 Тогда
        РазобратьРазностьДат(НачалоДня(ДатаКонца), НачалоДня(ДатаНачала), Лет, Месяцев, Дней);
    Иначе
        РазобратьРазностьДат(НачалоДня(ДатаНачала), НачалоДня(ДатаКонца), Лет, Месяцев, Дней);
    КонецЕсли;
    Дней = Дней - 1;    
    
    Если Мод > 0 Тогда
        РазницаЧМС = (КонецДня(ДатаНачала)+1 - ДатаНачала) + (ДатаКонца - НачалоДня(ДатаКонца)); 
    Иначе
        РазницаЧМС = (КонецДня(ДатаКонца)+1 - ДатаКонца) + (ДатаНачала - НачалоДня(ДатаНачала));
    КонецЕсли;
    
    Если РазницаЧМС >= 86400 Тогда
        Дней = Дней + 1;
           РазницаЧМС = РазницаЧМС - 86400;
    КонецЕсли;
    Часов = ?(РазницаЧМС >= 3600, Цел(РазницаЧМС / 3600), 0);
    РазницаЧМС = РазницаЧМС - Часов * 3600;
    
    Минут = ?(РазницаЧМС >= 60, Цел(РазницаЧМС / 60), 0);
    РазницаЧМС = РазницаЧМС - Минут * 60;
    Секунд = РазницаЧМС;
    
    СО = Новый Структура; // Структура ответа
    СО.Вставить("Префикс", ?(Мод < 0, "Прошло", "Наступит через"));
    СО.Вставить("ЗначЛет", ?(Лет > 0, " " + Лет + " лет", ""));
    СО.Вставить("ЗначМесяцев", ?(Месяцев > 0, " " + Месяцев + " месяцев", ""));
    СО.Вставить("ЗначДней", ?(Дней > 0, " " + Дней + " дней", ""));
    СО.Вставить("ЗначЧасов", ?(Часов > 0, " " + Часов + " часов", ""));
    СО.Вставить("ЗначМинут", ?(Минут > 0, " " + Минут + " минут", ""));
    СО.Вставить("ЗначСекунд", ?(Секунд > 0, " " + Секунд + " секунд", ""));
                
    СтрокаОтвета = "" + СО.Префикс + СО.ЗначЛет + СО.ЗначМесяцев + СО.ЗначДней + СО.ЗначЧасов + СО.ЗначМинут + СО.ЗначСекунд;
    ЭлементыФормы.Н_РазностьСтрокой.Заголовок = СтрокаОтвета;
    
КонецПроцедуры

Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0)
    
    Лет        = 0;
    Месяцев    = 0;
    Дней    = 0;
    Если Дата1 > Дата2 Тогда
        
        ВременнаяДата = Дата1;
        Если День(ВременнаяДата) < День(Дата2) Тогда
            Дней = (ВременнаяДата - ДобавитьМесяц(ВременнаяДата,-1))/86400;
            ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
        КонецЕсли;
        Если Месяц(ВременнаяДата) < Месяц(Дата2) Тогда
            ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
            Месяцев = 12;
        КонецЕсли;
        Лет        = Макс(             Год(ВременнаяДата)        - Год(Дата2),    0);
        Месяцев    = Макс(Месяцев    + Месяц(ВременнаяДата)    - Месяц(Дата2),    0);
        Дней    = Макс(Дней        + День(ВременнаяДата)    - День(Дата2),    0);
        
       // скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах
 
        Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней*86400) Тогда
            Дней = Дней + (День(КонецМесяца(Дата2)) - День(НачалоМесяца(Дата2))) - (День(КонецМесяца(ДобавитьМесяц(Дата1,-1))) - День(НачалоМесяца(ДобавитьМесяц(Дата1,-1))));
        КонецЕсли;
        
    КонецЕсли;

КонецПроцедуры   // РазобратьРазностьДат
Показать
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    61722    user700211_a.straltsou    27    

Вычислить РАЗНОСТЬДАТ в рабочих днях

Практика программирования БСП (Библиотека стандартных подсистем) v8::Запросы v8::СКД ERP2 БП3.0 УТ11 ЗУП3.x Бесплатно (free)

Вычисление количества рабочих днях между двумя датами в запросе.

20.10.2020    1522    antonivan    13    

Обработка кодом результата запроса в Консоли запросов 9000

Консоль запросов v8::Запросы Бесплатно (free)

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

01.06.2020    1527    kuza2000    7    

Выявляем и оптимизируем ресурсоемкие запросы 1С:Предприятия

Производительность и оптимизация (HighLoad) Администрирование СУБД Технологический журнал Структура метаданных v8::Запросы Бесплатно (free)

Обычно предметом оптимизации являются заранее определенные ключевые операции, т.е. действия, время выполнения которых значимо для пользователей. Причиной недостаточно быстрого выполнения ключевых операций может быть неоптимальный код, неоптимальные запросы либо же проблемы параллельности. Если выясняется, что основная доля времени выполнения ключевой операции приходится на запросы, то осуществляется оптимизация этих запросов. При высоких нагрузках на сервер СУБД в оптимизации нуждаются и те запросы, которые потребляют наибольшие ресурсы. Такие запросы не обязательно связаны с ключевыми операциями и заранее неизвестны. Но их также легко выявить и определить контекст их выполнения, чтобы оптимизировать стандартными методами.

24.05.2020    7472    DataReducer    22    

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    25378    itriot11    26    

СКД. Использование Менеджера временных таблиц в системе компоновки

Практика программирования v8 v8::Запросы v8::СКД 1cv8.cf Бесплатно (free)

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

29.04.2020    6156    the1    28    

Работа с запросами в 1С СКД. Отладка СКД

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    3478    ProfessionStore    3    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 3

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

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

13.04.2020    5699    ProfessionStore    4    

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    12493    m-rv    1    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 2

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

12.04.2020    4561    ProfessionStore    11    

Работа с запросами в 1С СКД. Особенности работы запросов в СКД. Часть 1

Практика программирования v8::Запросы v8::СКД 1cv8.cf Россия Бесплатно (free)

Все примеры разобраны с помощью консолей компоновки данных, речь о которых пойдет в предпоследнем разделе статьи.

11.04.2020    5824    ProfessionStore    8    

Работа с запросами в 1С СКД. Язык выражений СКД и подмена запросов

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Хотя эта статья называется «Работа с запросами в 1С СКД», нельзя не упомянуть про язык выражений СКД. Да – у системы компоновки данных есть свой язык! Это не язык платформы 1С, это не язык запросов. Это еще один язык, который используется 1С в СКД для обработки полученного набора (ов) данных.

11.04.2020    6026    ProfessionStore    24    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    37595    unichkin    74    

Работа с запросами в 1С СКД. Примеры использования расширения языка запросов СКД

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

Все тонкости использования расширения языка запросов 1С для СКД вы можете изучить по ссылкам, которые приведены в предыдущей статье. Здесь мы рассмотрим конкретные кейсы применения данного расширения.

10.04.2020    6038    ProfessionStore    4    

Запросы 1С СКД. Возможности и ограничения

Практика программирования v8::Запросы v8::СКД Россия Бесплатно (free)

В этом цикле статей мы рассмотрим особенности работы системы компоновки данных с запросами в 1С.

10.04.2020    7340    ProfessionStore    14    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    7387    Evg-Lylyk    0    

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

Практика программирования v8 1cv8.cf Бесплатно (free)

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

15.10.2018    30642    tormozit    100    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    24914    John_d    22    

Нумерация строк в запросе методами платформы

Практика программирования v8::Запросы 1cv8.cf Казахстан Бесплатно (free)

Простая реализация с помощью встроенных методов. Пригодится тем, кому нужно пронумеровать запрос без СКД и переборов.

09.01.2020    11309    user602678_maxipunchik    37    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    78262    tormozit    131    

Налогообложение сотрудников, работающих по ГПХ (доработка 1С:Зарплата и управление персоналом КОРП, редакция 3.1)

Зарплата Практика программирования v8::СПР v8::Запросы ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Цель этой статьи - быстро доработать ЗУП для налогообложения сотрудников, работающих по ГПХ. Эта статья решает задачи, связанные с отсутствием в ЗУП функционала по обложению налогом работников ГПХ. На вопросы ниже вы найдете ответ в статье и решите эту задачу. Как настроить ЗУП 3, чтобы по договору ГПХ начислялись страховые взносы? У нас ситуация: есть договор ГПХ с одним человеком, который носит систематический характер и надо по нему начислять взносы, но ЗУП 3 не начисляет.

26.11.2019    3860    Lupeykin    7    

Группировка данных в запросе (СГРУППИРОВАТЬ ПО [ГРУППИРУЮЩИМ НАБОРАМ], ИТОГИ ПО [ОБЩИЕ])

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

Для группировки данных в языке запросов 1С существуют конструкции СГРУППИРОВАТЬ ПО [ГРУППИРУЮЩИМ НАБОРАМ], ИТОГИ ПО [ОБЩИЕ]. Для новичков назначение этих конструкций не всегда очевидно, попробуем разобраться на примерах, для чего предназначена каждая из них и в чем отличие от аналогичных конструкций в языке SQL.

19.09.2019    19800    sertak    9    

Количество NULL в запросе

Практика программирования v8 v8::Запросы Россия Бесплатно (free)

При определении количества элементов в виде "NULL" в результирующей таблице запроса нам возвращается значение "0".

17.09.2019    3647    toxilamer    18    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    48731    tormozit    41    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    52317    rpgshnik    63    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    50774    ids79    54    

Выборка дней рождения

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Бесплатно (free)

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

26.06.2019    3279    user654641_yaga_m    6    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    45106    tormozit    74    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    25480    dmurk    145    

Почему вообще работает мой запрос? или Ещё раз о планах запросов

Математика и алгоритмы Практика программирования Разработка v8::Запросы Бесплатно (free)

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    9443    DataReducer    12    

Работа с запросами. Получение последней цены товара из табличной части документа. Несколько вариантов

Практика программирования Разработка v8 v8::Запросы УПП1 Бесплатно (free)

На нескольких собеседованиях это спрашивали, решил поделиться. Обычно я использую вариант №2. Остальные варианты нашел в интернете.

05.06.2019    5861    wowik    26    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16138    m-rv    2    

Нюансы преобразования запроса СКД

Практика программирования v8 v8::Запросы v8::СКД 1cv8.cf Бесплатно (free)

Описание некоторых нюансов преобразования запроса в СКД.

31.05.2019    13714    waol    14    

Групповая обработка (Управляемая консоль отчетов)

Обработка документов Инструментарий разработчика Обработка справочников v8 v8::УФ v8::Запросы 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Бесплатно (free)

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

13.05.2019    9531    Evg-Lylyk    10    

Не вполне очевидные приемы в конструкторе запросов

Практика программирования Разработка v8 v8::Запросы 1cv8.cf Бесплатно (free)

Приёмы работы с конструктором запросов (4 приёма).

23.04.2019    4588    ignor    2    

Как настроить правильную техподдержку (helpdesk, service desk на коленке) Промо

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени v8 УУ Бесплатно (free)

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

24.04.2019    18499    siddy    0    

Как прикрутить ГУИД к регистру сведений

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    20404    m-rv    17    

Заметки по SQL: Запрос, получающий изменения ресурса в регистрах сведений по датам изменения за период

Практика программирования v8 v8::Запросы 1cv8.cf Россия Бесплатно (free)

В статье описан метод получения изменения ресурса регистра сведений по датам изменения, построенный на основе запроса "Сумма накоплением".

11.04.2019    5041    IVC_goal    11    

Заметки по SQL: Генерация ряда дат и данные из периодических регистров на каждый день

Практика программирования Разработка v8::Запросы Бесплатно (free)

В публикации описывается запрос на классическом SQL, позволяющий получить периодические данные на каждый день на примере формирования цен номенклатуры и остатков регистра накопления "ТоварыНаСкладах". Генератор ряда дат для запроса, построен на основе порождающего запроса.

05.03.2019    4855    IVC_goal    0    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    36706    bolefirenko    117    

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке

Универсальные функции Зарплата Управление персоналом (HRM) Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Бесплатно (free)

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

14.11.2018    91132    GeterX    121    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    35255    ids79    40    

Отладка запроса с содержимым временных таблиц (управляемые формы)

Практика программирования v8 v8::УФ v8::Запросы 1cv8.cf Россия Бесплатно (free)

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

01.11.2018    16733    Evg-Lylyk    55    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    30931    m-rv    21    

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час

Практика программирования Инструментарий разработчика v8::СКД Бесплатно (free)

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

03.09.2018    45411    SergeyN    26