Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выборка по сравнению из таблицы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
nickolas
Бухгалтерия сельскохозяйственного предприятия для Украины, редакция 1.2.

Таблица 1:
ИмяТаблицы1
ОсновноеСредство
Номенклатура
Организаци
... и т.д.

Таблица 2:
ИмяТаблицы2
Наименование
ИнвентарныйНомер
.... и т.д.

ОсновноеСредство из таблицы 1 тоже самое что и Наименование из таблицы 2
его выбрал для общего параметра.
В таблице 1 нету поля ИнвентарныйНомер, вот его мне нужно достать, что я делаю

В запросе где беруться все данные данного отчета пишу следующий код


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


На выводе нет инв.номера по всем основным средствам, или может я не так сравниваю эти поля, непойму, подскажите дельным советом. Строго не судите, я только учусь.
logist
Не совсем понятна задача. Решение должно быть таким что бы не использовать сравнение по наименованию.
sava1
Цитата(nickolas @ 10.04.17, 14:31) необходимо зарегистрироваться для просмотра ссылки
КОГДА ПОДСТРОКА(ОсновноеСредство, 1, 5) = ПОДСТРОКА(Наименование, 1, 5)


А если наименование Трактор ХХХХХ ?
nickolas
logist @ Сегодня, 14:57 необходимо зарегистрироваться для просмотра ссылки ,
несовсем понял вашу мысль, вернее совсем не понял. Мне нужен общий атрибут для выбора даных, другого нету, общее только Наименование таб.2 с ОсновноеСредство в таб.1



sava1 @ Сегодня, 15:00 необходимо зарегистрироваться для просмотра ссылки ,
Верно, я что-то об этом совсем не подумал, но и пробовал ОсновноеСредство = Наименование , так же результат нулевой
sava1
По ссылке надо соединять таблицы
Petre
Цитата(nickolas @ 10.04.17, 14:33) необходимо зарегистрироваться для просмотра ссылки
но и пробовал ОсновноеСредство = Наименование

Ссылка никогда не будет равна строке.
nickolas
Цитата(sava1 @ 10.04.17, 15:00) необходимо зарегистрироваться для просмотра ссылки
А если наименование Трактор ХХХХХ ?


если так
ОсновноеСредство = Наименование

такая ошибка

{Отчет.ИНАГРО_ОтчеПоЗатратамОС.МодульОбъекта(179)}: Помилка при встановленні значення атрибуту контексту (Текст)
УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
через:
{(27, 15)}: Неоднозначне поле "ОсновноеСредство"
КОГДА <<?>>ОсновноеСредство = Наименование
sava1
Что за отчет ?
Petre
Цитата(nickolas @ 10.04.17, 14:38) необходимо зарегистрироваться для просмотра ссылки
Неоднозначне поле "ОсновноеСредство"

Надо писать полный путь, не короткий и не псевдоним.
nickolas
Цитата(sava1 @ 10.04.17, 15:35) необходимо зарегистрироваться для просмотра ссылки
По ссылке надо соединять таблицы


как то так?

КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.ОсновноеСредство ССЫЛКА ПервоначальныеСведенияОСБухгалтерскийУчет.ОсновноеСредство.Наименование
ТОГДА ПервоначальныеСведенияОСБухгалтерскийУчет.ИнвентарныйНомер
ИНАЧЕ ""Без.Инв.Номера""
КОНЕЦ КАК ИнвентарныйНомер

нет инв.номера все равно
Petre
Цитата(nickolas @ 10.04.17, 14:49) необходимо зарегистрироваться для просмотра ссылки
как то так?

Не так, а "Левое соединение ... По ..."
nickolas
Цитата(Petre @ 10.04.17, 15:52) необходимо зарегистрироваться для просмотра ссылки
Не так, а "Левое соединение ... По ..."

Я уже вобще запутался, почему оно просто не может вытянуть нужные мне поля и сравнить? Могли бы вы написать полный пример запроса?
sava1
Был вопрос - Что за отчет?
nickolas

Цитата(sava1 @ 10.04.17, 15:56) необходимо зарегистрироваться для просмотра ссылки
Был вопрос - Что за отчет?

Отчет по затратам основных средств, вот в нем нужно добавить инв.номер к основным средствам
Petre
Цитата(nickolas @ 10.04.17, 14:55) необходимо зарегистрироваться для просмотра ссылки
Я уже вобще запутался, почему оно просто не может вытянуть нужные мне поля и сравнить? Могли бы вы написать полный пример запроса?

Боюсь, вам надо разобраться, что такое "соединение" и что такое "декартово произведение" в контексте запросов.
sava1
вот кусок
    "ВЫБРАТЬ
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Организация КАК Организация,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.ОсновноеСредство КАК ОсновноеСредство,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Номенклатура КАК Номенклатура,
        |    ВЫБОР
        |        КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1 ССЫЛКА Справочник.Склады
        |            ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1
        |        ИНАЧЕ ВЫБОР
        |                КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                        ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2 ССЫЛКА Справочник.Склады
        |                    ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2
        |                ИНАЧЕ ВЫБОР
        |                        КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                                ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3 ССЫЛКА Справочник.Склады
        |                            ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3
        |                        ИНАЧЕ ""субконто, відмінне від типу ПІДРОЗДІЛИ ОРГАНІЗАЦІЙ""
        |                    КОНЕЦ
        |            КОНЕЦ
        |    КОНЕЦ КАК Склад,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СчетЗатрат КАК СчетЗатрат,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Регистратор КАК Регистратор,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.КоличествоОборот КАК Количество,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СуммаОборот КАК Сумма,
        |    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер
        |{ВЫБРАТЬ
        |    Организация,
        |    ОсновноеСредство,
        |    Номенклатура,
        |    Склад,
        |    СчетЗатрат,
        |    Регистратор,
        |    Количество,
        |    Сумма}
        |ИЗ
        |    РегистрНакопления.ИНАГРО_МатериалыСписаныеНаТранспорт.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ИНАГРО_МатериалыСписаныеНаТранспортОбороты
        |        Левое СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ДатаКон) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
        |        ПО ИНАГРО_МатериалыСписаныеНаТранспортОбороты.ОсновноеСредство = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
        |{ГДЕ
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Организация,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.ОсновноеСредство,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Номенклатура,
        |    (ВЫБОР
        |            КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                    ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1 ССЫЛКА Справочник.Склады
        |                ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат1
        |            ИНАЧЕ ВЫБОР
        |                    КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                            ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2 ССЫЛКА Справочник.Склады
        |                        ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат2
        |                    ИНАЧЕ ВЫБОР
        |                            КОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3 ССЫЛКА Справочник.ПодразделенияОрганизаций
        |                                    ИЛИ ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3 ССЫЛКА Справочник.Склады
        |                                ТОГДА ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СубконтоЗатрат3
        |                            ИНАЧЕ NULL
        |                        КОНЕЦ
        |                КОНЕЦ
        |        КОНЕЦ) КАК Склад,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СчетЗатрат,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.Регистратор,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.КоличествоОборот КАК Количество,
        |    ИНАГРО_МатериалыСписаныеНаТранспортОбороты.СуммаОборот КАК Сумма}
logist
Цитата(nickolas @ 10.04.17, 15:33) необходимо зарегистрироваться для просмотра ссылки
Мне нужен общий атрибут для выбора даных, другого нету, общее только Наименование таб.2 с ОсновноеСредство в таб.1

Общим должна быть Ссылка, даже если одну таблицу получаете из внешнего источника (например из файла) то сначала надо обработать таблицу так что бы у неё появилась Ссылка, а потому получать данные в запросе, находя соответствие по Ссылке.
nickolas
sava1 @ Сегодня, 16:50 необходимо зарегистрироваться для просмотра ссылки ,
Ваш пример работает, БОЛЬШОЕ человеческое спасибо
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.