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

Хранилище

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

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



> Получить данные из регистра накопления по условию          
burza Подменю пользователя
сообщение 06.03.18, 11:52
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Есть Документ связанный с регистром накопления. В документе есть поле номер договора, как мне при создании нового документа он лез в накопление и выводил мне информацию в поле(СуммаОплачено)сумму всех предыдущих документов по полю сравнения номера договора.
Можно хотя бы пример какой-то)


 ! 

Правила: 4,5
 


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

    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("Накра"));

   Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();

    
    Объект.ДолгКлиента = Выборка.СуммаПоСчету;


Сообщение отредактировал logist - 06.03.18, 11:50

podcast Подменю пользователя
сообщение 06.03.18, 11:56
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

burza @ Сегодня, 11:52 * ,
 Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   РегистрСчетов.Период,
        |   РегистрСчетов.Регистратор,
        |   РегистрСчетов.НомерСтроки,
        |   РегистрСчетов.Активность,
        |   РегистрСчетов.Контрагент,
        |   РегистрСчетов.Организация,
        |   РегистрСчетов.НомерДоговора,
        |   РегистрСчетов.НомерСчета,
        |   РегистрСчетов.Санаторий,
        |   РегистрСчетов.СуммаПоСчету КАК  СуммаПоСчету
        |ИЗ
        |   РегистрНакопления.РегистрСчетов КАК РегистрСчетов
        |ГДЕ
        |   РегистрСчетов.Организация = &ВыбОрганизация И
        |   РегистрСчетов.Регистратор.НомерДоговора = &НомерДоговора
        | ";

    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("Накра"));
  Запрос.УстановитьПараметр("НомерДоговора ",НомерДоговора ); //Указать нужный номер договора.
   Выборка = Запрос.Выполнить().Выбрать();
СуммаПоСчету = 0;    
Пока Выборка.Следующий() Цикл

    СуммаПоСчету  = СуммаПоСчету + Выборка.СуммаПоСчету;

КонецЦикла
Возврат СуммаПоСчету;

Это самый простой вариант, можно Итог с запроса взять.

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

burza Подменю пользователя
сообщение 06.03.18, 11:58
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

podcast @ Сегодня, 11:56 * ,
Напишите как) в смысле код

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

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

ВЫБРАТЬ
    СУММА(ЕСТЬNULL(Расчеты.СуммаПоСчету , 0)) КАК СуммаПоСчету
ИЗ
    РегистрНакопления.РегистрСчетов.Обороты(, , , НомерДоговора = &НомерДоговора И Организация = &Организация) КАК Расчеты


Сообщение отредактировал logist - 06.03.18, 11:59


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

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

podcast Подменю пользователя
сообщение 06.03.18, 12:00
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

burza @ Сегодня, 11:58 * ,
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |   РегистрСчетов.Период,
        |   РегистрСчетов.Регистратор,
        |   РегистрСчетов.НомерСтроки,
        |   РегистрСчетов.Активность,
        |   РегистрСчетов.Контрагент,
        |   РегистрСчетов.Организация,
        |   РегистрСчетов.НомерДоговора,
        |   РегистрСчетов.НомерСчета,
        |   РегистрСчетов.Санаторий,
        |   РегистрСчетов.СуммаПоСчету КАК  СуммаПоСчету
        |ИЗ
        |   РегистрНакопления.РегистрСчетов КАК РегистрСчетов
        |ГДЕ
        |   РегистрСчетов.Организация = &ВыбОрганизация И
        |   РегистрСчетов.Регистратор.НомерДоговора = &НомерДоговора
        | ";

    Запрос.УстановитьПараметр("ВыбОрганизация",
        Справочники.Организации.НайтиПоНаименованию("Накра"));
  Запрос.УстановитьПараметр("НомерДоговора ",НомерДоговора ); //Указать нужный номер договора.
   Выборка = Запрос.Выполнить().Выгрузить();
СуммаПоСчету = Выборка.Итог("СуммаПоСчету");    

Возврат СуммаПоСчету;

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

burza Подменю пользователя
сообщение 06.03.18, 14:09
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

podcast @ Сегодня, 12:00 * ,
А как сравнивать если не указать номер договора чтобы он сам сравнивал если несколько документов с одинаковым номером договора выводил сумму

burza @ Сегодня, 13:47 * ,
То есть у меня есть заявки и у них свой номер при формировании счета нужно сравнивать предыдущие по номеру(номер заполняется с заявки) он один для всех документов одной заявки.

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

Выборка = Запрос.Выполнить().Выгрузить();
  
   Объект.ДолгКлиента = Выборка.Итог("СуммаПоСчету");

burza Подменю пользователя
сообщение 06.03.18, 15:25
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Подскажите еще как вот это впихнуть в цикл чтобы проверило всю табличную часть документа и проставило
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
    Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
     Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;

podcast Подменю пользователя
сообщение 06.03.18, 15:32
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

burza @ Сегодня, 15:25 * ,
В Событии ПриИзменении реквизита который вы водите вручную, либо сделать команду и пройти циклом всю таблицу.

burza Подменю пользователя
сообщение 06.03.18, 15:35
Сообщение #9

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

podcast @ Сегодня, 15:32 * ,
Я не ввожу вручную при изменение не подходит, документ делается на основании и втягивает данные с родителя.
Ну команда есть а что то дописать?)у меня с цыклами проблемы)
&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
    
    
        

    //Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
    //Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
    // Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;

КонецПроцедуры

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

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

Цитата(burza @ 06.03.18, 15:35) *
документ делается на основании и втягивает данные с родителя.

У документа нет Родителя, это у справочников. В модуле объекта есть процедура ОбработкаЗаполнения вот там и пишите ваш цикл который будет заполнять в каждой строке.


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

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

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

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

logist @ Сегодня, 15:47 * ,
Или вы меня не так поняли или я вас, мне нужно чтобы вот эта формула
 Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
    Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
     Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;
заполнялась по нажатию кнопки для всего табличного документа а не для на которого навели мышкой как сейчас.

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

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

чуть не в тему - кто помнит приоритетность математ. операций ?

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

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

Цитата(burza @ 06.03.18, 15:54) *
Или вы меня не так поняли или я вас,

Тут вообще много непонятного. Я процитировал часть вашего сообщения на которое ответил. Вы там говорили что документ создается на основании другого.

Извините, но на самом деле нихуя не понятно, сначала вы пишите что это поле в документе, потом это оказывается реквизит в табличной части, потом оказывается что это должно заполнятся при вводе на основании другого,... а в итоге окажется что мы запускаем шатл на марс, просто постановщик стесняется это сразу пояснить, думая, что на каком-то этапе он сам разберется. Не бойтесь быть глупым, говорите всё сразу, это, как минимум, упрощает жизнь отвечающим


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

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

burza Подменю пользователя
сообщение 06.03.18, 16:05
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

Как его правильно дописать Подскажите
 
Для каждого СтрКоличество  Из Документы.РегистрСчетов.ОписаниеПутевки  Цикл
Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20
КонецЦикла;

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

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

&НаСервере
//
Для каждого СтрКоличество  Из Объект.ОписаниеПутевки  Цикл
СтрКоличество.Количество = СтрКоличество.Количество / 100 * 20
КонецЦикла;


Сообщение отредактировал logist - 06.03.18, 16:08


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

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

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

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

logist @ Сегодня, 16:06 * ,
Неа не то

Как с этого сделать цикл
&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
        
    Элементы.ОписаниеПутевки.ТекущиеДанные.Количество = Элементы.ОписаниеПутевки.ТекущиеДанные.Количество / 100 * 20;
    Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
     Элементы.ОписаниеПутевки.ТекущиеДанные.ЦенаПутевки = Элементы.ОписаниеПутевки.ТекущиеДанные.СуммаПоСчету / Элементы.ОписаниеПутевки.ТекущиеДанные.Количество;

КонецПроцедуры

logist Подменю пользователя
сообщение 06.03.18, 17:04
Сообщение #17

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

Цитата(burza @ 06.03.18, 16:43) *
Неа не то

Почему не то? Вы фидбек умеете давать, или надо догадываться?

&НаКлиенте
Процедура ЗаполнитьПоетапам(Команда)
Для Каждого Строка Из Объект.ОписаниеПутевки Цикл
    Строка.Количество = Строка.Количество / 100 * 20;
    Строка.СуммаПоСчету = Объект.СуммаПоСчетуБезСкидок / 100 * 20;
     Строка.ЦенаПутевки = Строка.СуммаПоСчету / Строка.Количество;
КонецЦикла;
КонецПроцедуры

Если и это будет не то, без подробного описания проблемы - уйдете в бан.


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

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

burza Подменю пользователя
сообщение 07.03.18, 9:43
Сообщение #18

Оратор
*****
Группа: Пользователи
Сообщений: 312
Спасибо сказали: 1 раз
Рейтинг: 1

logist @ Вчера, 17:04 * ,
Спасибо оно)
Теперь наткнулся на другое. В табличной части например 5 полей а СуммаПоСчету ставит на каждое поле (20 процентов), как эту сумму разбить на количество полей и добавить в СуммаПоСчету уже посредственно для самой строки.
Тоесть сейчас

burza @ Сегодня, 9:37 * ,
А надо

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


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

 

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