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

Хранилище

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

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



> Поле с итогом по условию в таб. части документа          
rpervak Подменю пользователя
сообщение 24.05.16, 17:45
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 73
Спасибо сказали: 2 раз
Рейтинг: 0

Здравствуйте !
УПП, редакция 1.3 (1.3.39.1)
Помогите, пожалуйста, реализовать следующее:
Есть документ, в котором имеется таб. поле "Заказы".
Нужно добавить колонку в которой будет суммироваться количество товара с нарастающим итогом, пока артикул номенклатуры добавляемых строк одинаковый.
Если в следующей строке другой артикул, то и значение итогового поля сбрасывается на итог по новому артикулу.

Пример:

1. Заказ1 - Арт1 - кол1 - Ит=кол1
2. Заказ2 - Арт1 - кол2 - Ит=кол1+кол2
......................................................
n. Заказn - Арт.1 - колn - Ит=кол1+кол2+...+колn

n+1. Заказ(n+1) - Арт.2 - Кол(n+1) - Ит=Кол(n+1)
n+2. Заказ(n+2) - Арт.2 - Кол(n+2) - Ит=Кол(n+1)+Кол(n+2)

И т.д.
Для упрощения задачи, артикула в разброс добавляться не будут, а строго по порядку.

Пробовал через свойство ПриПолученииДанных() - не получилось.
Как можно сделать обход строк таб. части сравнивая с предыдущей строкой ?

McTSIMCO Подменю пользователя
сообщение 25.05.16, 9:53
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 16
Из: Киев
Спасибо сказали: 7 раз
Рейтинг: 0

А зачем вообще сравнивать?

ВыгружайТЕ таб.поле в таблицузначений, делайТЕ к ней запрос, а вот уже в запросе суммируйТЕ итоги по заказу / артикулу.


 ! 

Правила: 1
 


Сообщение отредактировал logist - 25.05.16, 10:24

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

rpervak Подменю пользователя
сообщение 25.05.16, 14:04
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 73
Спасибо сказали: 2 раз
Рейтинг: 0

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


При выполнении запроса выдает ошибку:

Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить();
по причине:
Не установлен менеджер временных таблиц

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

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

Цитата(rpervak @ 25.05.16, 15:04) *
Не установлен менеджер временных таблиц

Вы не знаете что это?

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


Результата запроса в вашем случае не будет, т.к. вы поместили его во временную таблицу.

Сообщение отредактировал logist - 25.05.16, 14:43


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

sava1 Подменю пользователя
сообщение 25.05.16, 14:59
Сообщение #5

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

Танцы с бубном. Задача по своей постановке неправильная - если лепить такие "хотелки"....

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

Нонна Подменю пользователя
сообщение 25.05.16, 15:40
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

Посмотрите, может пригодится.

&НаКлиенте
Процедура ЗаполнитьКоличествоАртикулов(Команда)
КолАрт=1;
Сч1=1;
Артикулы=Новый Массив;
КоличествоСтрок = Объект.Товары.Количество();
Мас=Новый Массив;
Объект.Товары[0].КоличествоАртикулов=КолАрт;

Для Сч=1 По  КоличествоСтрок  Цикл
    Мас.Добавить(Объект.Товары[Сч-1].Номенклатура);
КонецЦикла;
Артикулы= ПолучитьАртикул(Мас, КоличествоСтрок);

Для Сч=1 По КоличествоСтрок+1 Цикл
    Для Сч1=Сч1+1 По КоличествоСтрок Цикл
        
        Если Артикулы[Сч1-2]=Артикулы[Сч1-1] Тогда
          КолАрт=КолАрт+1;
          Объект.Товары[Сч1-1].КоличествоАртикулов=КолАрт;
          
      Иначе КолАрт=1;
            Объект.Товары[Сч1-1].КоличествоАртикулов=КолАрт;
            Сч=Сч+1;
            Прервать;
         КонецЕсли;
    КонецЦикла;
КонецЦикла;
КонецПроцедуры

&НаСервере
Функция ПолучитьАртикул(Мас,Количество)
    МасАртикул=Новый Массив;
    Для К=1 По  Количество Цикл
         МасАртикул.Добавить(Мас[К-1].Артикул);    
    КонецЦикла;
Возврат МасАртикул;    
КонецФункции

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

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

Цитата(Нонна @ 25.05.16, 16:40) *
Посмотрите, может пригодится.

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


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

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

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

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

Сделайте эту хрень в печатной форме, а не в ТЧ документа.
Выгрузили ТЧ, отсортировали, простой цикл с проверкой условия и накоплением итога.

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

Говорящий
***
Группа: Пользователи
Сообщений: 73
Спасибо сказали: 2 раз
Рейтинг: 0

В печатной форме сделал, так видите ли надо лишние кнопки нажимать. Соглашусь, что надо было НЕ лепить такие "хотелки"....
Спасибо всем ! Получилось через менеджер временных таблиц.
Тему можно закрывать.

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


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

 

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