Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:24

С какой радости не является значением объектного типа???

Автор Nail2010, 09 мар 2011, 06:03

0 Пользователей и 2 гостей просматривают эту тему.

Klyacksa

ЦитироватьИ запрос, кстати, не работает.....
Ну извиняй, бухгалтерии под рукой нет, ручками писала. Будет повод самому подумать и подкорректировать запрос под свою задачу ;)

Цитироватьесть условие - Если в комментарии Реализации записано "приходный кассовый ордер", тогда значение подставляется из реквизита Плана счетов Хозрасчетный (ПрибылиИУбыткиЕНВД), в противном случае- реквизит плана счетов Хозрасчетный (ПрибылиИУбыткиНеЕНВД). Как реализовать его в приведенном тобой коде?

Решается в запросе - делаем поле ПодставляемыйСчет с конструкцией "выбор когда", и там делаем это условие. Если есть "пко", то одно значение возвращаем, если нет - то другое.
А потом в цикле вместо строки
Строка.СчетДоходовБУ=ДописываемыйПланСчетов;

пишем что-то вроде:
Строка.СчетДоходовБУ=Строка.ПодставляеемыйСчет;
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

cska-fanat-kz

"Выборка=Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
      СтрокаТабличнойЧасти=Замена.Добавить();
      СтрокаТабличнойЧасти.ИзмененныеДокументы=Выборка.Ссылка;
      ОбъектПоиск=СтрокаТабличнойЧасти.ИзмененныеДокументы.ПолучитьОбъект();
      Если ОбъектПоиск.Комментарий="Приходный кассовый ордер" Тогда
         ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД;
      Иначе
          ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
      КонецЕсли;
      ОбъектПоиск.Записать();
   КонецЦикла;"

Зачем вам получать объект если вы все равно ничего в нем не меняете и как он был таким и записываете?

Вместо

Если ОбъектПоиск.Комментарий="Приходный кассовый ордер" Тогда
         ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД;
      Иначе
          ТабЧасть=ОбъектПоиск.Товары.Добавить();
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
      КонецЕсли;

можно
ТабЧасть=ОбъектПоиск.Товары.Добавить();
Если ОбъектПоиск.Комментарий="Приходный кассовый ордер" Тогда
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД;
      Иначе
         ТабЧасть.СчетДоходовБУ=ПланыСчетов.Хозрасчетный.ПрибылиИУбыткиНеЕНВД;
      КонецЕсли;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

"Зачем вам получать объект если вы все равно ничего в нем не меняете и как он был таким и записываете?"

Сорри, вчитался в код, понял зачем )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Nail2010

Спасибо за вариант! Маленькое дополнение: Метод Добавить() добавляет новую строку в табличную часть, верно?

Klyacksa

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Nail2010

Похоже, что-то я сам запутался и вас запутал :)
Там новых строк не нужно совсем. Просто заменить старые значения колонок на новые.

Klyacksa

 :thrtjrej:
ну я же подробный код целиком писала... нужно только чуть-чуть его подправить себе... ну где вы в моем коде видите добавление строки-то???
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Nail2010

Что-ж, по-порядку  и логически.

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

Nail2010

Вставка конструкции в запросе:

.............
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|    РеализацияТоваровУслугУслуги.Ссылка,
|    РеализацияТоваровУслугУслуги.НомерСтроки,
|    РеализацияТоваровУслугУслуги.СчетДоходовБУ,
    КОГДА
         РеализацияТоваровУслугУслуги.Комментарий ПОДОБНО "Приходный кассовый ордер"
     ТОГДА
         РеализацияТоваровУслугТовары.СчетДоходовБУ=Значение(Планысчетов.Хозрасчетный.ПрибылиИУбыткиЕНВД)
,
|      2
|ИЗ
|    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск