Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Июл 2017, 21:40
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Объединение документов по условию  (Прочитано 710 раз)

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

Оффлайн gamograff

  • *
  • Сообщений: 27
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-07-16
  • Сайт: 
  • Профессия: Программист 1С
Добрый день. Есть следующая задача: есть выборка документов "ПоступлениеТоваровУслуг". Нужно их объединить следующим образом: есть предельная сумма, объединение документов должно идти по порядку выборки. Как только сумма следующего документа выводит общую сумму за пределы предельной суммы, документ записывается с датой первого, который вошёл в эту сумму. То есть в итоге сумма итогового документа должна быть равна или чуть меньше предельной суммы. После его записи мы переходим к следующему документу и так же объединяем дальше, пока не закончится выборка. Например:
12.05.2015 20р
13.05.2015 40р
14.05.2015 10р
Предельная сумма 65р
Итоговый документ будет от 12.05.2015 с суммой 60р, а документ от 14.05.2015 пойдёт в следующее объединение. И так далее.
И вот теперь вопрос. Как реализовать это всё реализовать? Как запомнить дату первого вошедшего в объединение документа (если создавать новый документ) или менять этот самый первый документ, это не принципиально, и как начать выбирать новые документы после записи объединения? Заранее спасибо!


Оффлайн Luzer1C

  • ****
  • Сообщений: 411
  • РЕПУТАЦИЯ: 41
  • КПД: 10%
  • Регистрация: 2014-02-17
  • Сайт: 
  • Профессия: Программист 1С
Ну вроде ничего сложного нет. Нужно только взять и сделать.
Помочь мне очень сложно. Но можно.
Помогаю просто так...
Матёрый разработчик УПП + Бит Финанс

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
А если на документ от 13го числа есть ссылки, то как быть?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Онлайн Vladimir_Sh

  • 1С:Специалист
  • ****
  • Сообщений: 356
  • РЕПУТАЦИЯ: 68
  • КПД: 19%
  • Регистрация: 2015-10-16
  • Компания: Центр бизнес решений "ALT"
  • Профессия: Разработчик 1С
Как запомнить дату первого вошедшего в объединение документа (если создавать новый документ) или менять этот самый первый документ, это не принципиально, 
Первый документ Вы получите как первый элемент коллекции (которую будете использовать), созданные уже документы вошедшие в предел рекомендую помечать неким признаком(так будет проще с ними в дальнейшем работать).
и как начать выбирать новые документы после записи объединения?
Используйте пометку о которой я писал выше и выбирайте новые документы. Потом на следующий круг. Можно добиться универсальности процедуры.
Если я Вам помог, нажми - Спасибо!

Оффлайн gamograff

  • *
  • Сообщений: 27
  • РЕПУТАЦИЯ: -1
  • Регистрация: 2015-07-16
  • Сайт: 
  • Профессия: Программист 1С
Используйте пометку о которой я писал выше и выбирайте новые документы. Потом на следующий круг. Можно добиться универсальности процедуры.

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

Приходы = Запрос.Выполнить().Выгрузить();

Если Приходы.Количество() > 0 Тогда

оснДок = Приходы.Получить(0).Получить(0);
оснДокОбъект = оснДок.ПолучитьОбъект();

ФП = 0;
ФП2 = 0;

Для каждого Строка из Приходы Цикл

Если ФП = 1 Тогда

Сумма = оснДокОбъект.Товары.Получить(0).Сумма;
текОбъект = Строка.Ссылка.ПолучитьОбъект();
СуммаТекОб = текОбъект.Товары.Получить(0).Сумма;
оснДокОбъект.Товары.Получить(0).Сумма = Сумма + СуммаТекОб;
оснДокОбъект.Записать();
текОбъект.УстановитьПометкуУдаления(Истина);

Элемент = Справочники.rm_Цепочки.НайтиПоРеквизиту("Приход", оснДок).ПолучитьОбъект();
Расход = Элемент.Расход.ПолучитьОбъект();
Расход.Товары.Получить(0).Сумма = Сумма + СуммаТекОб;
Расход.Записать();
Сообщить("Изменены документы  " + оснДок + " и " + Расход);

Элемент.Сумма = Сумма + СуммаТекОб;
Элемент.Количество = (Сумма + СуммаТекОб) / Константы.rm_ЦенаТовара.Получить();
Элемент.Записать();
Сообщить("Цепочка изменена");

                                        текЭлемент = Справочники.rm_Цепочки.НайтиПоРеквизиту("Приход", Строка.Ссылка).ПолучитьОбъект();
текЭлемент.Удалить();
ФП2 = 1;
Если Элемент.Сумма >= Объект.ПредельнаяСумма Тогда
Прервать;
КонецЕсли;
Иначе
                                        Если Строка.Ссылка = оснДок Тогда
    ФП = 1 ;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;


Теги:
 

Как создать нескольких документов "расчет при увольнении" на основании кадрового документа "увольнение" как Отпуска

Автор cozuРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 2788
Последний ответ 21 Мар 2015, 20:24
от дфтын
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 3895
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
Реквизит "Ссылка" у справочников и документов

Автор leklerkРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2677
Последний ответ 29 Май 2013, 16:24
от leklerk
"Дубляж" документов реализации в ВзаиморасчетыКомпанииОстаткиИОбороты

Автор mspuzРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1637
Последний ответ 24 Янв 2014, 13:55
от mspuz
Неясна схема создания документов в "1С: ERP УП 2.1".

Автор РексарычРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1508
Последний ответ 29 Июн 2016, 12:04
от Sandi

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
95 Сообщений
oleg-x
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
68 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
45 Сообщений
AIFrame
42 Сообщений
wise wise
31 Сообщений
Амал
30 Сообщений
ab30ru
24 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 448
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal