|
Подсчёт срок в запросе и обрезка результата запроса | ☑ | ||
---|---|---|---|---|
0
zzzLEXzzz
20.12.13
✎
11:11
|
Привет всем, это опять я ))) 1с 8.2, имеется запрос, задача такая, нужно подсчитать сколько строк обработал запрос в запросе в документе "РеализацияТоваровИУслуг" и записать это в фаил, так же нужно результат который записывается в файл"ВыборкаДетальныеЗаписи.Номер" обрезать, например туда записывается номер "КП/00041646", а нужно чтобы записывался "41646", помогите реализовать, заранее спасибо ))))
Процедура КнопкаВыполнитьНажатие(Кнопка) Текст = Новый ТекстовыйДокумент(); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.Наименование КАК НаименованиеПОСТ, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.ИНН КАК ИНН, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.КПП КАК КПП, | РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК Наименование, | РеализацияТоваровУслугТовары.Номенклатура.КолЛвШТ КАК КолЛвШТ, | РеализацияТоваровУслугТовары.Количество КАК Количетсво, | РеализацияТоваровУслугТовары.Цена КАК Цена, | РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС, | РеализацияТоваровУслуг.Номер КАК Номер, | РеализацияТоваровУслуг.Дата КАК Дата, | РеализацияТоваровУслуг.Контрагент.КПП КАК КППКлиента, | РеализацияТоваровУслуг.СуммаДокумента КАК СУММАДокумента, | РеализацияТоваровУслуг.Контрагент.Наименование КАК НаименованиеКонтр, | КонтактнаяИнформация.Представление КАК Адрес |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслуг.Ссылка, | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон | И РеализацияТоваровУслуг.Контрагент В ИЕРАРХИИ(&Контрагент)"; Запрос.УстановитьПараметр("ДатаКон", ДатаКон); Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("Контрагент", Контрагент); Запрос.УстановитьПараметр("Объект", Контрагент); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); ВыборкаДетальныеЗаписи.Следующий(); Текст.ДобавитьСтроку("ООО ""Качественный Продукт"";2630042719;263001001;" + ВыборкаДетальныеЗаписи.Номер + ";" + ВыборкаДетальныеЗаписи.Дата + ";"+ ВыборкаДетальныеЗаписи.КППКлиента + ";" + ВыборкаДетальныеЗаписи.НаименованиеКонтр + " " + ВыборкаДетальныеЗаписи.Адрес + ";" + ВыборкаДетальныеЗаписи.СУММАДокумента); ВыборкаДетальныеЗаписи1 = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл Текст.ДобавитьСтроку(ВыборкаДетальныеЗаписи1.Код + ";260;" +ВыборкаДетальныеЗаписи1.Наименование + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ + ";" + ВыборкаДетальныеЗаписи1.Количетсво + ";" + ВыборкаДетальныеЗаписи1.Цена * 18% + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ+ ";" + ВыборкаДетальныеЗаписи1.СуммаНДС + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ * ВыборкаДетальныеЗаписи1.Количетсво); КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА Текст.Записать("C:\test.txt"); КонецПроцедуры |
|||
1
Галахад
гуру
20.12.13
✎
11:16
|
Какой печальный запрос...
|
|||
2
zzzLEXzzz
20.12.13
✎
11:17
|
(1) ну какой смог сделать, я же не проф.
|
|||
3
Галахад
гуру
20.12.13
✎
11:19
|
(2) Может стоит запрос переделать, а не строки в нем считать?
|
|||
4
zzzLEXzzz
20.12.13
✎
11:21
|
(3) просто у меня для этого ума не хватит (((
|
|||
5
salvator
20.12.13
✎
11:23
|
(4) Тебе во вчерашней теме разжевали все по ненужности соединения табличной части и самого документа по ссылке.
|
|||
6
zzzLEXzzz
20.12.13
✎
11:28
|
(5) если я сделаю так, как мне вчера объясняли, тогда получится посчитать количество строк и обрезать номер?
|
|||
7
salvator
20.12.13
✎
11:29
|
"нужно подсчитать сколько строк обработал запрос"
Метод Количество() для выборки результата запроса "так же нужно результат который записывается в файл"ВыборкаДетальныеЗаписи.Номер" обрезать" посмотри на типовые функции, к примеру формирования номера при печати |
|||
8
Maxus43
20.12.13
✎
11:33
|
соединение с контактной информацией надо делать по контрагенту.
У тебя щас без условий - это значит кросс джойн, + это значит что документы с контрагентами без адреса не попадут вобще в результат и т.д. и т.п. |
|||
9
salvator
20.12.13
✎
11:38
|
(6) 1. Убери соединение табличной части с документом. Получай значения шапки из РеализацияТоваровУслугТовары.Ссылка.
2. Сделай левое с регистром сведений по контрагенту. |
|||
10
salvator
20.12.13
✎
11:39
|
+(9) Левое соединение *
|
|||
11
zzzLEXzzz
20.12.13
✎
11:43
|
(8) у нас пока нет контрагентов без адреса, поэтому я сделал так
|
|||
12
zzzLEXzzz
20.12.13
✎
11:44
|
(7) я смотрел формирование номера при печати, но не разобрался как это вставить в мою обработку, а с подсчётом количества, сейчас буду пробовать
|
|||
13
salvator
20.12.13
✎
11:47
|
(12) Вызови мать-ёё функцию эту и номер обрежется.
|
|||
14
zzzLEXzzz
20.12.13
✎
11:56
|
(13) не злись ))) буду пробовать
|
|||
15
zzzLEXzzz
20.12.13
✎
11:57
|
вот попробовал сделать по "ссылке", что я тут не правильно намудрил?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.Наименование КАК НаименованиеПОСТ, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.ИНН КАК ИНН, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.КПП КАК КПП, | РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК Наименование, | РеализацияТоваровУслугТовары.Номенклатура.КолЛвШТ КАК КолЛвШТ, | РеализацияТоваровУслугТовары.Количество КАК Количетсво, | РеализацияТоваровУслугТовары.Цена КАК Цена, | РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС, | РеализацияТоваровУслуг.Ссылка.Номер КАК Номер, | РеализацияТоваровУслуг.Ссылка.Дата КАК Дата, | РеализацияТоваровУслуг.Сылка.Контрагент.КПП КАК КППКлиента, | РеализацияТоваровУслуг.Ссылка.СуммаДокумента КАК СУММАДокумента, | РеализацияТоваровУслуг.Ссылка.Контрагент.Наименование КАК НаименованиеКонтр, | КонтактнаяИнформация.Представление КАК Адрес |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары, | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | И РеализацияТоваровУслуг.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)"; |
|||
16
salvator
20.12.13
✎
12:05
|
Замени везде в тексте запроса "РеализацияТоваровУслуг" на "РеализацияТоваровУслугТовары". И учись работать с конструктором запроса. Быстрее, и таких ошибок не будет.
|
|||
17
zzzLEXzzz
20.12.13
✎
12:19
|
(16) я извиняюсь что мозги делаю, но всё теперь на запрос не ругается, но теперь ругается на строчку
Текст.ДобавитьСтроку(ВыборкаДетальныеЗаписи1.Код + ";260;" +ВыборкаДетальныеЗаписи1.Наименование + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ + ";" + ВыборкаДетальныеЗаписи1.Количетсво + ";" + ВыборкаДетальныеЗаписи1.Цена * 18% + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ+ ";" + ВыборкаДетальныеЗаписи1.СуммаНДС + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ * ВыборкаДетальныеЗаписи1.Количетсво); пишет что {Форма.Форма.Форма(60)}: Преобразование значения к типу Число не может быть выполнено Текст.ДобавитьСтроку(ВыборкаДетальныеЗаписи1.Код + ";260;" +ВыборкаДетальныеЗаписи1.Наименование + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ + ";" + ВыборкаДетальныеЗаписи1.Количетсво + ";" + ВыборкаДетальныеЗаписи1.Цена * 18% + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ+ ";" + ВыборкаДетальныеЗаписи1.СуммаНДС + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ * ВыборкаДетальныеЗаписи1.Количетсво); |
|||
18
salvator
20.12.13
✎
12:25
|
(17) Текст.ДобавитьСтроку(""+ВыборкаДетальныеЗаписи1.Код +...
|
|||
19
zzzLEXzzz
20.12.13
✎
12:29
|
(18) попробовал всё равно то же самое
{Форма.Форма.Форма(60)}: Преобразование значения к типу Число не может быть выполнено Текст.ДобавитьСтроку(""+ВыборкаДетальныеЗаписи1.Код + ";260;" +ВыборкаДетальныеЗаписи1.Наименование + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ + ";" + ВыборкаДетальныеЗаписи1.Количетсво + ";" + ВыборкаДетальныеЗаписи1.Цена * 18% + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ+ ";" + ВыборкаДетальныеЗаписи1.СуммаНДС + ";" + ВыборкаДетальныеЗаписи1.КолЛвШТ * ВыборкаДетальныеЗаписи1.Количетсво); |
|||
20
zzzLEXzzz
20.12.13
✎
12:30
|
(18) вот запрос
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслугТовары.Ссылка, | РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.Наименование КАК НаименованиеПОСТ, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.ИНН КАК ИНН, | РеализацияТоваровУслугТовары.СерияНоменклатуры.Производитель.КПП КАК КПП, | РеализацияТоваровУслугТовары.Номенклатура.Наименование КАК Наименование, | РеализацияТоваровУслугТовары.Номенклатура.КолЛвШТ КАК КолЛвШТ, | РеализацияТоваровУслугТовары.Количество КАК Количетсво, | РеализацияТоваровУслугТовары.Цена КАК Цена, | РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС, | РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер, | РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата, | РеализацияТоваровУслугТовары.Ссылка.Контрагент.КПП КАК КППКлиента, | РеализацияТоваровУслугТовары.Ссылка.СуммаДокумента КАК СУММАДокумента, | РеализацияТоваровУслугТовары.Ссылка.Контрагент.Наименование КАК НаименованиеКонтр, | КонтактнаяИнформация.Представление КАК Адрес |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары, | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | И РеализацияТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)"; |
|||
21
Галахад
гуру
20.12.13
✎
12:31
|
Чо это:
ВыборкаДетальныеЗаписи1.Цена * 18% |
|||
22
salvator
20.12.13
✎
12:32
|
Это что млять такое?!
ВыборкаДетальныеЗаписи1.Цена * 18% |
|||
23
zzzLEXzzz
20.12.13
✎
12:32
|
(21) ну до этого работало, умножает цена на 18%
|
|||
24
salvator
20.12.13
✎
12:35
|
(23) А, ну раз работало, тогда продолжайте наблюдения.
|
|||
25
Enders
20.12.13
✎
12:36
|
ВыборкаДетальныеЗаписи1.Цена * 18%
Ахах) Пятнично) |
|||
26
zzzLEXzzz
20.12.13
✎
12:39
|
Ну туплю я, что ж поделать, ну правда не выдавала ошибку, пока я не перешёл "на ссылку" ))) щас убрал заработало
|
|||
27
zzzLEXzzz
20.12.13
✎
12:42
|
только вот как теперь количество строк подсчитать и обрезку номера сдлеать
|
|||
28
zzzLEXzzz
20.12.13
✎
13:05
|
подсчёт сделал так
КоличествоЗаписей = Запрос.Выполнить ().Выбрать().Количество(); вроде работает нормально. Подскажите как правильно вызвать функцию "формирования номера при печати" |
|||
29
zzzLEXzzz
20.12.13
✎
13:24
|
(28) всё решили со мной не связываться??? ладно, спасибо всем за помощь, очень помогли ))))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |