Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
Добрый день. Подскажите как выполнить запрос. Есть документ _Document6395 - Документ.ТоварнаяНоменклатураСборки У него есть табличная часть, где указаны номенклатуры и план (количество) по каждой позиции. !!!Цена и итог не указано!!! _Document6395_VT6404 - Документ.ТоварнаяНоменклатураСборки.НоменклатураТЧ задача вывести список или в моем случае общую сумму: количество, ценаДействующая, ценаСтабильная. (ценаДействующая и ценаСтабильная - это виды цен в таблице _InfoRg3676 - РегистрСведений.ЦеныНоменклатуры). Где цена документа указана на момент даты документа Документ.ТоварнаяНоменклатураСборки. Смог только реализовать, сумму: количество, ценаДействующая, ценаСтабильная по цене на текущий день. Как брать цену в регистре сведений - ЦеныНоменклатуры на момент даты документа Документ.ТоварнаяНоменклатураСборки? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 08:25 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
livesid, Конечно, не видя данных перед глазами комплексно советы давать - но сходу - а почему бы не делать inner join к РС [ЦеныНоменклатуры] по периоду через BETWEEN - к справочнику цен, у которого есть ДатаНачалаСрокаДействияЦены и ДатаКонцаСрокаДействияЦены? Джойним [Документ.ТоварнаяНоменклатураСборки] и [Справочник.Номенклатура] - по ID номенклатуры. Из [Документ.ТоварнаяНоменклатураСборки] получаем фактическую дату и ведем ее в [ЦеныНоменклатуры] используя BETWEEN между границами? Если Даты окончания периода нет - можно предварительно этот регистр обработать в CTE, искусственно создав для него крайнюю границу как максимальное ДатаВремя Получатся такие островки, куда можно будет попадать извне, как бы Если я правильно понял задачу, естественно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 09:17 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
PsyMisha livesid, Конечно, не видя данных перед глазами комплексно советы давать - но сходу - а почему бы не делать inner join к РС [ЦеныНоменклатуры] по периоду через BETWEEN - к справочнику цен, у которого есть ДатаНачалаСрокаДействияЦены и ДатаКонцаСрокаДействияЦены? Джойним [Документ.ТоварнаяНоменклатураСборки] и [Справочник.Номенклатура] - по ID номенклатуры. Из [Документ.ТоварнаяНоменклатураСборки] получаем фактическую дату и ведем ее в [ЦеныНоменклатуры] используя BETWEEN между границами? Если Даты окончания периода нет - можно предварительно этот регистр обработать в CTE, искусственно создав для него крайнюю границу как максимальное ДатаВремя Получатся такие островки, куда можно будет попадать извне, как бы Если я правильно понял задачу, естественно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 09:17 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
Попытался накидать в ексель. BETWEEN - хорошая идея, если правильно понял, создаем виртуальную таблицу Price, где будут указаны периоды начала и конца действия цены для номенклатуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 09:38 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
livesid, Ну как-то так, да Вообще, по идее - такие сущности, как ЦеныНоменклатуры должны изначально, с уровня источника данных - идти с периодами, даже в 1С они есть. Под рукой кода сейчас нет, - пороюсь в архивах - если найду - то продемонстрирую А насчет паттерна соваться в справочник к его датам через BETWEEN с даты, идущей с факта - да, это вполне рациональное рабочее решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 09:51 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
livesid Как брать цену в регистре сведений - ЦеныНоменклатуры на момент даты документа Документ.ТоварнаяНоменклатураСборки? РегистрСведений.ЦеныНоменклатуры - периодический, Вам нужен срез последних на дату документа, т.е. по интересующим Вас номенклатурам нужно найти значения цен с максимальной датой меньшей либо равной дате документа. P.S. А почему бы Вам не решить данную задачу на стороне 1С? P.P.S. Для t-sql есть универсальный способ представления даты - YYYYMMDD - лучше всегда пользоваться им, а не Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 10:05 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
Сделал так. Буду связывать через between +2000 год, это так храниться в бд Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 10:26 |
|
||
|
Запрос к ms sql с базой данных 1с. Прайс-лист
|
|||
|---|---|---|---|
|
#18+
1C Developer, к сожалению на стороне 1с, никто делать не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2019, 10:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39890909&tid=1686924]: |
0ms |
get settings: |
7ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 477ms |

| 0 / 0 |
