Остатки на каждый день в запросе

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

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

Остатки остатков запрос запросом товара товар товаров каждый на день получение по каждому дню продукта продукции

Запрос формирует остатки товаров на каждый день в пределах выбранного периода.

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

Обращаю внимание на то, что для работы данного запроса должен использоваться регистр сведений РегламентированныйПроизводственныйКалендарь. Даже если он не используется в организации, в нём должна быть хотя бы одна запись. Если записей нет, то их можно создать.

Полный код запроса

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря
ПОМЕСТИТЬ Дни
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
; ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Движения.Номенклатура,
    ДНИ.ДатаКалендаря КАК ДатаКалендаря,
    СУММА(ВЫБОР
            КОГДА Движения.Период = &НачалоПериода
                ТОГДА Движения.КоличествоКонечныйОстаток
            ИНАЧЕ ВЫБОР
                    КОГДА Движения.Период <= ДНИ.ДатаКалендаря
                        ТОГДА Движения.КоличествоОборот
                    ИНАЧЕ 0
                КОНЕЦ
        КОНЕЦ) КАК КоличествоКонечныйОстаток
ИЗ
    Дни КАК ДНИ
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , ) КАК Движения
        ПО (Движения.Период <= ДНИ.ДатаКалендаря)
ГДЕ
    Движения.Номенклатура.ОсновнойПоставщик = &ОсновнойПоставщик
    И Движения.Номенклатура.Код = &Код
СГРУППИРОВАТЬ ПО
    Движения.Номенклатура,
    ДНИ.ДатаКалендаря

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

Буду рад конструктивной критике в комментариях, а также предложениям по улучшению запроса.

Скачать файлы

Наименование Файл Версия Размер
ОстаткиНаКаждыйДень
.epf 7,82Kb
05.08.16
21
.epf 7,82Kb 21 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. lrs 27 27.04.16 16:15 Сейчас в теме
Указанный запрос не работает!
Виртуальную таблицу Остатков и оборотов Вы дополняете отсутствующими датами, но остатки на эти даты не дополняете!! Переделывайте)
2. arakelyan 352 27.04.16 23:39 Сейчас в теме
(1) lrs, Благодарю за комментарий. Скажите пожалуйста в какой конфигурации Вы использовали запрос? Мне очень интересна причина, по которой запрос у Вас не работает, но у меня пока недостаточно информации чтобы её понять. За прикрепленные снимки экрана тройная благодарность.
3. lrs 27 28.04.16 11:02 Сейчас в теме
Все очевидно, вы соединяете таблицы по дате, но за даты, за которые не было движений остаток отсутствует, поэтому в итоговой таблице у вас дырки (т.е. по сути нулевые остатки, которые на самом деле не нулевые)
Для примера смотрите картинку, где слева ведомомсть по товарам на складах с разворотом по дням, а справа итог выполнения вашего запроса. (например, 2,3го числа конечный остаток соответствует остатку за 1е число, но ваша таблица показывает 0 за эти дни...)
PS. Чтоб быстрее разобраться, сделайте отбор по одной номенклатуре, по одному складу. И выберите ту позицию для анализа, по которой хотябы один день не было движений.
Прикрепленные файлы:
4. arakelyan 352 28.04.16 12:31 Сейчас в теме
(3) lrs, понял что Вы имели в виду. Когда тестировал у себя такой проблемы не возникало. В приложении снимок моей ведомости и консоли, в запросе разумеется ничего не менял. Движение товаров также отсутствует за некоторые даты, но строк со значением NULL не появляется. Благодарю Вас за обратную связь, постараюсь разобраться с данной проблемой.
Прикрепленные файлы:
5. lrs 27 28.04.16 14:55 Сейчас в теме
(4) В итоге вы уже пришли ни к остаткам на каждый день, а просто к виртуальной таблице остатков и оборотов. Вы все дальше от решения поставленной задачи))
Даже на титульной картинке у вас пропущены даты (в основном это выходные), когда не было движений)))
Пропущенных дат в итоговой таблице Вы не видите, потому что делаете отбор по основному поставщику, обращаясь а элементам, которые отсутствуют в построенной таблице, либо перенесите отбор в условия таблицы остатков и оборотов (Вот сюда: РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(КОНЕЦПЕРИОДА(&Дата1), КОНЕЦПЕРИОДА(&Дата2), День, , Номенклатура.ОсновнойПоставщик = &ОсновнойПоставщик)), или уберите его на момент проверки..
6. arakelyan 352 28.04.16 18:49 Сейчас в теме
(5) lrs, запрос был переосмыслен. Новый запрос возвращает остатки на каждый день даже если не было движений.
7. schthaxe 27.01.17 01:01 Сейчас в теме
Добрый день! Решил переделать Ваш отчет так чтобы он показывал остатки по взаимозачетам на каждый месяц.
Регистр - ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов, Периодичность - Регистратор.
Таблицу календаря беру Кросс-запросом.
В итоге всё получилось, но выяснился прискорбный глюк, который я не смог устранить -
Были движения по документу на НачалоПериода, то есть КонечныйОстаток и Оборот не равны нулю. То есть допустим НачалоПериода = 01.06.2016 00:00:00, и в точности в это же время прошла оплата по реализации ну скажем за апрель, то есть есть скажем ПКО или платежка за 01.06.2016 00:00:00.
В этом случае у нас получается на 01.06.2016 00:00:00 два остатка которые 1С почему то складывает! Итог получается больше на размер остатка на НачалоПериода! Заставить 1С разделить остатки мне не удалось, поэтому я просто сдвинул НачалоПериода на секунду.
В прикрепленной таблице - пример без группировки на суммы.
Прикрепленные файлы:
Проблема с отчетом.xls
8. arakelyan 352 27.01.17 11:27 Сейчас в теме
(7) Здравствуйте, если Вам не сложно пришлите пожалуйста запрос, который получился в итоге. Я попробую у себя его исполнить и найти причину.
9. schthaxe 27.01.17 13:49 Сейчас в теме
|ВЫБРАТЬ
		|	Движения.Контрагент,
		|	Движения.ДоговорКонтрагента,
		|	Движения.ДокументРасчетовСКонтрагентом,
		|	ДНИ.ДатаКалендаря КАК ДатаКалендаря,
		|	СУММА(ВЫБОР
		|			КОГДА Движения.Период <= &НачалоПериода
		|				ТОГДА Движения.СуммаВзаиморасчетовКонечныйОстаток
		|			ИНАЧЕ ВЫБОР
		|					КОГДА Движения.Период <= ДНИ.ДатаКалендаря
		|						ТОГДА Движения.СуммаВзаиморасчетовОборот
		|					ИНАЧЕ 0
		|				КОНЕЦ
		|		КОНЕЦ) КАК СуммаВзаиморасчетовКонечныйОстаток
		|ПОМЕСТИТЬ тВзаиморасчеты
		|ИЗ
		|	ДНИ КАК ДНИ
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , {(ДоговорКонтрагента).*, (Сделка).*, (Контрагент).*, (Организация).*}) КАК Движения
		|		ПО (Движения.Период <= ДНИ.ДатаКалендаря)
		|
		|СГРУППИРОВАТЬ ПО
		|	Движения.Контрагент,
		|	Движения.ДоговорКонтрагента,
		|	ДНИ.ДатаКалендаря,
		|	Движения.ДокументРасчетовСКонтрагентом
		|;

Причина то понятна, я вам ее уже описал. В принципе наверно ее можно как то отфильтровывать отдельным запросом на началопериода... 
вот таким например - если данный запрос не пуст, значит беда.
ВЫБРАТЬ
	Вз.СуммаВзаиморасчетовНачальныйОстаток,
	Вз.СуммаВзаиморасчетовОборот,
	Вз.ДокументРасчетовСКонтрагентом
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&НачалоПериода, &НачалоПериода, , , ) КАК Вз
ГДЕ
	Вз.СуммаВзаиморасчетовНачальныйОстаток <> 0
	И Вз.СуммаВзаиморасчетовОборот <> 0
Показать
10. arakelyan 352 27.01.17 14:57 Сейчас в теме
(9) Прогнал запрос у себя. Да есть такое дело. Решение Вы уже описали. Если нужны остатки взаиморасчетов по дням например с 2.01.2017 по 1.27.2017 тогда параметр НачалоПериода устанавливаем на конец предыдущего дня, то есть 1.01.2017 23:59:59. В таком случае в результирующей таблице мы будем видеть корректные остатки начиная с 2.01.2017.

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

СУММА(ВЫБОР
            КОГДА Движения.Период = &НачалоПериода
                ТОГДА Движения.КоличествоКонечныйОстаток
            ИНАЧЕ ВЫБОР
                    КОГДА Движения.Период <= ДНИ.ДатаКалендаря
                        ТОГДА Движения.КоличествоОборот
                    ИНАЧЕ 0
                КОНЕЦ
        КОНЕЦ)
Показать

В итоге у меня всё работает правильно и насколько я понял у Вас тоже, верно?
11. schthaxe 28.01.17 14:13 Сейчас в теме
Это однозначно глюк и вот почему. есть такое понятие как Граница. первый остаток дается на границу исключая данное время, а второй - включая. Система должна точно определить, если ей дается время - она остаток должна брать либо включая либо исключая, но никак не складывая одно с другим!
К сожалению в данном случае граница в качестве периода мне не подходит, так как с ней не работают запросные функции работы с датами
12. amazonka 25 17.11.17 11:49 Сейчас в теме
13. arakelyan 352 17.11.17 15:17 Сейчас в теме
(12)Не могу не согласиться)
14. palsergeich 16.01.18 23:12 Сейчас в теме
Спрашивают этот запрос на каждом 2м собеседовании. Или его или срез последних на каждый день.
Задача интересная, но чисто с точки зрения алгоритмики.
Но нужно понимать что на подзапросе вылететь в Out of memory - ну очень просто.
А есть еще вопрос со звездочкой: а что делать если нам постоянно надо обращаться к остаткам (оборотам) на каждый день (например реальная задача - план закупок для большой сети который актуализируется чуть ли не раз в 10 минут).
Правильный ответ: Храните их расчитанными. Ибо как не получай эти данные - или запрос в цикле (хардкод в коде, неявные запросы в цикле при помощи СКД) или гигантские промежуточные результаты. Нельзя получить быстро, что не хранится. Да минусы у этого подхода: 1) рост базы 2) отставание актуальности данных на частоту выполнения регламентного задания. Плюс другой - при частом выполнении данного запроса будет очень сильная нагрузка на базу. И если база большая, или не большая, но период большой, то время выполнения данного запроса будет или не удовлетворительным или начнутся технологические проблемы.
Из своей практики: В реальной жизни данный запрос получается объединением данных за прошлые числа из расчитанного регистра и данные вирт таблиц за сегодня. Все работает более чем быстро.
15. Lupeykin 5 26.07.19 07:03 Сейчас в теме
Остаток на каждый месяц по счету 02 для бух корп

ВЫБРАТЬ РАЗЛИЧНЫЕ
	НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.Дата, МЕСЯЦ) КАК Месяц
ПОМЕСТИТЬ ВТКалендарь
ИЗ
	РегистрСведений.ДанныеПроизводственногоКалендаря КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.Дата МЕЖДУ &Дата1 И &Дата2
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТКалендарь.Месяц КАК Месяц,
	СУММА(ХозрасчетныйОстатки.СуммаОстатокКт) КАК СуммаОстатокНаНачало,
	ХозрасчетныйОстатки.Организация КАК Организация,
	ХозрасчетныйОстатки.Субконто1 КАК ОС
ПОМЕСТИТЬ ВтОстатки
ИЗ
	ВТКалендарь КАК ВТКалендарь,
	РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата1, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстатки.Организация,
	ХозрасчетныйОстатки.Субконто1,
	ВТКалендарь.Месяц
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ХозрасчетныйОбороты.Период КАК Период,
	ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
	СУММА(ХозрасчетныйОбороты.СуммаОборот) КАК СуммаОборот
ПОМЕСТИТЬ ВтОбороты
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата1, &Дата2, Месяц, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация, , ) КАК ХозрасчетныйОбороты

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОбороты.Период,
	ХозрасчетныйОбороты.Субконто1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВтОстатки.Месяц КАК Месяц,
	ВтОстатки.СуммаОстатокНаНачало КАК СуммаОстатокНаНачало,
	СУММА(isnull(ВтОбороты.СуммаОборот,0)) КАК СуммаОборот,
	ВтОстатки.Организация КАК Организация,
	ВтОстатки.ОС.код КАК ИнвНомер,
	ВтОстатки.ОС КАК ОС, 
	
	ВтОстатки.СуммаОстатокНаНачало - (СУММА(isnull(ВтОбороты.СуммаОборот,0))*-1) как ОстаточнаяСтоимость
ИЗ
	ВтОстатки КАК ВтОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ ВтОбороты КАК ВтОбороты
		ПО (ВтОстатки.Месяц >= ВтОбороты.Период)
			И (ВтОстатки.ОС = ВтОбороты.Субконто1)
ГДЕ
	ВтОстатки.ОС = &ОС

СГРУППИРОВАТЬ ПО
	ВтОстатки.Месяц,
	ВтОстатки.СуммаОстатокНаНачало,
	ВтОстатки.Организация,
	ВтОстатки.ОС
Показать
16. user640247 03.09.19 13:13 Сейчас в теме
спасибо, вроде получилось
17. user1296016 18.10.19 17:20 Сейчас в теме
Для чего конструкция
ВЫБОР
КОГДА Движения.Период <= ДНИ.ДатаКалендаря
ТОГДА Движения.КоличествоОборот
ИНАЧЕ 0
КОНЕЦ

когда соединение идёт
ПО (Движения.Период <= ДНИ.ДатаКалендаря)


Может просто Движения.КоличествоОборот?
18. mih_mah 09.12.19 14:48 Сейчас в теме
Вот простой запрос по взаиморасчетам, все работает как надо
ВЫБРАТЬ РАЗЛИЧНЫЕ
	НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК ПериодРегистрации
ПОМЕСТИТЬ ВТ_Периоды
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачала И &ДатаОкончания
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВзаиморасчетыССотрудникамиОстатки.Сотрудник,
	ВзаиморасчетыССотрудникамиОстатки.Подразделение,
	ВзаиморасчетыССотрудникамиОстатки.СуммаРеглОстаток,
	&ДатаНачала КАК ПериодРегистрации
ПОМЕСТИТЬ ВТ_Взаиморасчеты
ИЗ
	РегистрНакопления.ВзаиморасчетыССотрудниками.Остатки(&ДатаНачала, Сотрудник В (&МассивСотрДляОтбора)) КАК ВзаиморасчетыССотрудникамиОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВзаиморасчетыССотрудникамиОбороты.Сотрудник,
	ВзаиморасчетыССотрудникамиОбороты.Подразделение,
	ВзаиморасчетыССотрудникамиОбороты.СуммаРеглОборот,
	ДОБАВИТЬКДАТЕ(ВзаиморасчетыССотрудникамиОбороты.Период, МЕСЯЦ, 1)
ИЗ
	РегистрНакопления.ВзаиморасчетыССотрудниками.Обороты(&ДатаНачала, &ДатаОкончания, Месяц, Сотрудник В (&МассивСотрДляОтбора)) КАК ВзаиморасчетыССотрудникамиОбороты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Периоды.ПериодРегистрации,
	ВТ_Взаиморасчеты.Сотрудник,
	ВТ_Взаиморасчеты.Подразделение,
	СУММА(ВТ_Взаиморасчеты.СуммаРеглОстаток) КАК Результат,
	"0. НачальныйОстаток" КАК ИмяВидаРасчета,
	"А" КАК Группа,
	NULL КАК Регистратор
ИЗ
	ВТ_Периоды КАК ВТ_Периоды
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Взаиморасчеты КАК ВТ_Взаиморасчеты
		ПО (ВТ_Взаиморасчеты.ПериодРегистрации <= ВТ_Периоды.ПериодРегистрации)
ГДЕ
	ВЫБОР
			КОГДА НЕ ВТ_Взаиморасчеты.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1)
					И ВТ_Взаиморасчеты.Сотрудник.ДатаУвольнения <= &ДатаОкончания
				ТОГДА ВТ_Взаиморасчеты.Сотрудник.ДатаУвольнения МЕЖДУ &ДатаНачала И &ДатаОкончания
			ИНАЧЕ ИСТИНА
		КОНЕЦ

СГРУППИРОВАТЬ ПО
	ВТ_Взаиморасчеты.Сотрудник,
	ВТ_Периоды.ПериодРегистрации,
	ВТ_Взаиморасчеты.Подразделение
Показать
Оставьте свое сообщение

См. также

Вам нравятся запросы в 1С?

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    13385    4    m-rv    86       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Безопасная работа с транзакциями во встроенном языке

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

25.03.2019    20846    8    tormozit    44       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструменты и обработки Программист Архив с данными v8 v8::Mobile БУ УУ Android Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Абонемент ($m) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    29877    237    informa1555    198       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Работа с публикациями "Инфостарт"

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    12330    12    RocKeR_13    16       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    19271    25    informa1555    26       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Работа с данными выбора

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    29025    17    kalyaka    16       

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар")

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    22415    86    m-rv    57       

Сдача регламентированной отчетности из программ 1С Промо

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

от 1500 руб.

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования БСП (Библиотека стандартных подсистем)

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    33268    31    dsdred    36       

Как выполнить отчет на СКД через COM и получить данные отчета?

Статья Программист Архив с данными v8 УПП1 Россия Windows Абонемент ($m) Практика программирования

Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, "скопипастить" текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его "немного модифицированная" копия. В статье будет рассмотрен пример получения данных из базы ЗУП.

2 стартмани

08.05.2018    20666    11    wowik    3       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Работа со схемой запроса

Статья Программист Конфигурация (md, cf) v8 v8::Запросы Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

24.04.2018    33486    77    kalyaka    34       

Заполняем по шаблону (по умолчанию)

Инструменты и обработки Программист Архив с данными v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

08.02.2018    20211    20    mvxyz    17       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    28509    63    rpgshnik    48       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула

Отчеты и формы Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Печатные формы документов Практика программирования Универсальные функции

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    27700    25    agent00mouse    0       

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Инструменты и обработки Программист Расширение (cfe) v8 БП3.0 Абонемент ($m) Практика программирования Универсальные печатные формы

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    20873    52    kwazi    6       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Остатки товаров на складах по выбранным документам

Отчеты и формы Бухгалтер Руководитель проекта Внешняя обработка (ert,epf) v8 ERP2 УТ11 УУ Учет ТМЦ Абонемент ($m) Печатные формы документов

Печатная форма подключается к документам. Даёт возможность быстро оценить остатки товара на складе по номенклатуре, указанной в документе, и ответить на вопрос, хватает ли остатков, чтобы отгрузить счет? На каких складах продукция по этому документу?

2 стартмани

09.11.2017    34332    24    A7758735    4       

Автозаказ для 1С:Управление торговлей 11

Отчеты и формы Бизнес-аналитик Внешний отчет (ert,erf) v8 v8::ОУ УТ11 УУ Оптовая торговля Учет ТМЦ Абонемент ($m) Управленческие

Отчет выводит информацию, помогающую принять решение о пополнении товарного запаса.

3 стартмани

26.09.2017    19445    41    The Ded    25       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Контроль учёта спецодежды

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::БУ БП3.0 Россия БУ Учет ТМЦ Абонемент ($m) Бухгалтерские Анализ учета

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

8 стартмани

08.09.2017    24333    30    sansys    13       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Расширения конфигураций 1С: учимся перехватывать методы

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования

В этой статье я на примерах разберу некоторые механизмы расширений конфигураций 1С. А именно «перехваты» методов модуля объекта и «перехваты» событий формы и элементов формы. Данная статья написана с учебными целями, чтобы показать, как при помощи расширений конфигурации можно делать такие доработки, ради которых раньше приходилось снимать конфигурацию с поддержки.

1 стартмани

30.05.2017    98355    14    signum2009    45       

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов

Статья Программист Архив с данными v8 1cv8.cf Россия Абонемент ($m) Практика программирования Математика и алгоритмы Универсальные функции Производительность и оптимизация (HighLoad)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    42301    168    DarkAn    86       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Простой способ индексирования интервалов

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) Практика программирования

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

1 стартмани

28.09.2016    34707    39    ildarovich    22