Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор строк ТЗ по значению не являющемуся колонкой ТЗ 2 страниц V   1 2 >          
logist Подменю пользователя
сообщение 22.05.12, 10:25
Сообщение #1

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Есть ТЗ с некими колонками, одна из них Номенклатура (в справочнике номенклатуры есть поле СтавкаНДС), так вот как методом ТЗ.НайтиСтроки выбрать строки с нужной мне ставкой НДС?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.05.12, 10:33
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Именно этим методом никак.

Цитата
НайтиСтроки (FindRows)
Синтаксис:

НайтиСтроки(<ПараметрыОтбора>)
Параметры:

<ПараметрыОтбора> (обязательный)

Тип: Структура.
Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.


Сообщение отредактировал Vofka - 22.05.12, 10:34

logist Подменю пользователя
сообщение 22.05.12, 10:39
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.05.12, 11:33) *
Именно этим методом никак.

Это понятно. Ну а что делать-то? )))


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.05.12, 10:42
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Вариантов "что делать" может быть несколько:
1) Я не в курсе откуда берутся данные в ТЗ. Так вот можно сделать, чтобы туда они попадали уже с определенной ставкой НДС;
2) Перебором строк смотреть на ставку НДС и если подходит - выносим эти строки куда надо и дальше с ними делаем что надо;
3) Добавить в таблицу колонку СтавкаНДС. А если сильно мозолит глаз - то просто на форме её скрыть.

logist Подменю пользователя
сообщение 22.05.12, 11:05
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.05.12, 11:42) *
Я не в курсе откуда берутся данные в ТЗ. Так вот можно сделать, чтобы туда они попадали уже с определенной ставкой НДС;

Тз это ТЧ документа которая обрабатывается на сервере перед записью в форме

Цитата(Vofka @ 22.05.12, 11:42) *
Перебором строк смотреть на ставку НДС и если подходит - выносим эти строки куда надо и дальше с ними делаем что надо;

Перебором строк не подходит, потому что идет перебор СтавокНДС и по ним отбор строк для формирования из них документов, ну и перебирать придется несколько раз что не вариант.

Цитата(Vofka @ 22.05.12, 11:42) *
Добавить в таблицу колонку СтавкаНДС. А если сильно мозолит глаз - то просто на форме её скрыть.

Думал над этим вопросом, но считаю не лучшим решением, должны же быть какие-то другие, более гуманные варианты.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.05.12, 11:29
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата(logist @ 22.05.12, 12:05) *
Перебором строк не подходит, потому что идет перебор СтавокНДС и по ним отбор строк для формирования из них документов, ну и перебирать придется несколько раз что не вариант.

Во-первых с таким подходом вам и искать строки надо было бы несколько раз. Во-вторых, что мешает при обходе строки по разным ставкам НДС складывать отдельно и потом отдельно их обработать?

Цитата(logist @ 22.05.12, 12:05) *
Думал над этим вопросом, но считаю не лучшим решением, должны же быть какие-то другие, более гуманные варианты.

Собственно, если действие происходит на сервере и эта ТЗ пользователю даже не показывается - то я вообще не вижу никаких проблем с добавлением новой колонки.

Ну и что самое интересное: задачу вы озвучили только что (в посте выше), а решение предложили в первом посте с вопросом почему оно не работает. При этом если б задачу озвучили сразу, то я бы предложил такой вариант: запрос с итогами по ставкам НДС.

logist Подменю пользователя
сообщение 22.05.12, 11:35
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.05.12, 12:29) *
что мешает при обходе строки по разным ставкам НДС складывать отдельно и потом отдельно их обработать?

Видимо так и поступлю.

Цитата(Vofka @ 22.05.12, 12:29) *
такой вариант: запрос

А что запрашивать-то, это ТЧ перед записью. Если б можно было запросом то и проблем бы не было.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.05.12, 12:49
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата(logist @ 22.05.12, 12:35) *
А что запрашивать-то, это ТЧ перед записью. Если б можно было запросом то и проблем бы не было.

Выгружаем данные ТЧ в ТЗ и делаем запрос по ТЗ.

logist Подменю пользователя
сообщение 22.05.12, 13:00
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.05.12, 13:49) *
и делаем запрос по ТЗ.

С этого места можно подробней (с примерами желательно)? smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.05.12, 13:06
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|   *
|ИЗ
|   &ТЗ КАК ТЗ
|";
Запрос.УстановитьПараметр("ТЗ", ТЗ); // переменная ТЗ - это какая-то подготовленная таблица значений
Результат = Запрос.Выполнить().Выгрузить();
Сообщить("Профит!", СтатусСообщения.Внимание);

Спасибо сказали: logist,

logist Подменю пользователя
сообщение 22.05.12, 13:38
Сообщение #11

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

ЗапросТЗ.Текст = "ВЫБРАТЬ * ИЗ &ТЗ КАК ТЗ ГДЕ ТЗ.Номенклатура.СтавкаНДС = &СтавкаНДС";

На выходе таблица только с одной колонкой "СтавкаНДС", где остальное?))


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 22.05.12, 15:28
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2751
Из: Проскуров
Спасибо сказали: 707 раз
Рейтинг: 686.5

Сначала надо добавить таблицу.
См. Менеджер временных таблиц

Vofka Подменю пользователя
сообщение 22.05.12, 15:29
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата(sava1 @ 22.05.12, 16:28) *
Сначала надо добавить таблицу.
См. Менеджер временных таблиц

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

logist Подменю пользователя
сообщение 22.05.12, 15:30
Сообщение #14

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

С запросом разобрался, мой косяк, но теперь при выгрузке результата запроса ошибка:
Цитата
Ошибка при вызове метода контекста (Выполнить)
ТаблицаДляВыделения = ЗапросТЗ.Выполнить().Выгрузить();
по причине:
Содержимое объекта данных может быть выбрано только во временную таблицу


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 22.05.12, 15:38
Сообщение #15

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2751
Из: Проскуров
Спасибо сказали: 707 раз
Рейтинг: 686.5

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



 i 

Выделяйте код.
 


Первый запрос укладывает ТЗ в БД (причем можно сразу с отбором) - ключевое слово ПОМЕСТИТЬ
Второй - выбираем то, что нужно из созданной таблицы.

Сообщение отредактировал logist - 22.05.12, 15:37

logist Подменю пользователя
сообщение 22.05.12, 15:43
Сообщение #16

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

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


Цитата
Ошибка при вызове метода контекста (Выполнить)
ЗапросТЗ.Выполнить();
по причине:
{(1, 42)}: Поле не найдено "ТЗ.Номенклатура.СтавкаНДС"
ВЫБРАТЬ * ПОМЕСТИТЬ ВТ ИЗ &ТЗ КАК ТЗ ГДЕ <<?>>ТЗ.Номенклатура.СтавкаНДС = &СтавкаНДС


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 22.05.12, 15:47
Сообщение #17

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2751
Из: Проскуров
Спасибо сказали: 707 раз
Рейтинг: 686.5

тз откуда получена? Поля тз должны быть типизированы .

logist Подменю пользователя
сообщение 22.05.12, 15:54
Сообщение #18

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(sava1 @ 22.05.12, 16:47) *
тз откуда получена? Поля тз должны быть типизированы .

ТЗ получена из ТЧ Объекта формы (ДанныеФормыКоллекция). Поля типизированы, отладчик показывает ТипЗначения колонки как ОписаниеТипов


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 22.05.12, 16:00
Сообщение #19

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2751
Из: Проскуров
Спасибо сказали: 707 раз
Рейтинг: 686.5

Два варианта;
1) указать колонку в выборке явно , а не *
2) приджойнить к номенклатуре справочник, а фильтр накладывать при выборке из временной таблицы

logist Подменю пользователя
сообщение 22.05.12, 16:06
Сообщение #20

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(sava1 @ 22.05.12, 17:00) *
1) указать колонку в выборке явно , а не *

Указывал - результат тот же.

Цитата(sava1 @ 22.05.12, 17:00) *
2) приджойнить к номенклатуре справочник, а фильтр накладывать при выборке из временной таблицы

Попробую smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 13:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!