|   |   | 
| 
 | Подсчёт срок в запросе и обрезка результата запроса | ☑ | ||
|---|---|---|---|---|
| 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) всё решили со мной не связываться??? ладно, спасибо всем за помощь, очень помогли ))))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |