- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
Небольшой гуру-тест по сопровождению типовых конфигураций.
Есть запрос, который получает себестоимость и выручку документа возврата товара от клиента (процедура ТекстЗапросаТаблицаВыручкаИСебестоимостьПродаж в модуле менеджера документа):
ТекстЗапроса = "
....
| - ВидыЗапасов.СуммаСНДСУпр КАК СуммаВыручки,
....
| ВЫБОР КОГДА ВидыЗапасов.ТипЗапасов = ЗНАЧЕНИЕ(Перечисление.ТипыЗапасов.КомиссионныйТовар)
| ИЛИ ВидыЗапасов.ДокументРеализации = НЕОПРЕДЕЛЕНО
| ТОГДА
| - ВидыЗапасов.СуммаСНДСУпр
| ИНАЧЕ
| 0
| КОНЕЦ КАК Себестоимость,
Для удобства сопровождения текст запроса меняется далее в коде, а не в самом запросе, в конструкции вида:
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "... что искать ...",
".. на что заменять...");
Нужно заменить использование ВидыЗапасов.СуммаСНДСУпр так, чтобы СуммаВыручки не изменилась, а Себестоимость изменилась, допустим на число 666 (для гуру-теста).
Это частая задача для УТ11, т.к. там не реализована возможность конкретного указания себестоимости, если возврат осущесвлятся без документа продажи (например, за прошлые периоды, до ввода начальных остатков), в этих случаях УТ11 принимает себестоимость возврата, равную цене продажи, а это не совсем правильно.
В этом случае есть один хитрый трюк, чтобы без использования регулярных выражений добиться замены себестоимости на заданное число. Вопрос - как? Думаем.