Автор Тема: Задача 2.31  (Прочитано 20301 раз)

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

oltie

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: oltie
Задача 2.31
« : Август 15, 2013, 01:35:01 pm »
Предлагаю решение, жду комментариев.

 1. настройка «Администрирование» -> «Организация иденежные средства» : поставить галочку «Планирование денежных средств».
 2. Создать новый регистр сведений«ЛимитыПоПодразделениям»: Измерение «подразделение», ресурс «Сумма».
 Независимый, периодический: месяц.
 

 Включить новый регистр в подсистему «планирование иконтроль денежных средств»:
 
 3. Реквизит документа СБДС«ЗаявкаНаРасходываниеДенежныхСредств» в свойствах – «проверка заполнения»
 поставить «не проверять».
 

 4. Вносим изменения в модуль менеджера документа СБДС
 Процедура ЗаполнитьИменаРеквизитовПоХозяйственнойОперации :
 
 5. Вносим изменения в модуль документа СБДС (Делаемпроверку заполнения «заявки на расходование денежные средств», в случае если
 это не оплата поставщику. Проверяем лимиты с помощью новой функции
 «ПроверитьЛимиты»)
 

 6. Вносим изменения в модуль формы документа СБДС

 7. Создаем отчет "Остатки по лимитам".

 Файл с решением можно скачать тут http://myfolder.ru/files/37620938
Вложения:
3237801.jpg
3606001.jpg
0674538.jpg
s8282489.jpg
s7283930.jpg

Nechipury

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Нечипоренко Евгений Александрович
Задача 2.31
« Ответ #1 : Август 15, 2013, 02:47:50 pm »
Правильное решение)


kindzadza

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: ru
Задача 2.31
« Ответ #2 : Август 16, 2013, 02:57:03 pm »
а куда вводится этот остаток по лимиту,не вижу?) просто делал немного по другому(есть документ для добавления лимита)...а у тебя все как то по проще)
« Последнее редактирование: Август 16, 2013, 03:35:17 pm от ru »

oltie

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: oltie
Задача 2.31
« Ответ #3 : Август 19, 2013, 12:06:13 pm »
Цитата (Nechipury)
а куда вводится этот остаток по лимиту,не вижу?)

 создается независимый регистр для самих лимитов. 
 сами лимиты вводятся просто как новая запись этого регистра (без документа).
 а остатки по лимитам выводят в отчете.

kastrtroy2006

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Веряскин Артем
Задача 2.31
« Ответ #4 : Август 19, 2013, 01:34:12 pm »
А почему сведений а не накопления?

DrShust

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: DrShust
Задача 2.31
« Ответ #5 : Август 19, 2013, 01:52:20 pm »
kastrtroy2006, странный вопрос... А по ценам номенклатуры, например, тоже тогда регистр накопления должен быть?

kastrtroy2006

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Веряскин Артем
Задача 2.31
« Ответ #6 : Август 19, 2013, 02:03:21 pm »
Цитата (DrShust)
kastrtroy2006, странный вопрос... А по ценам номенклатуры, например, тоже тогда регистр накопления должен быть?

 По ценам номенклатуры отчет об остатках не надо строить.

Добавлено (19.08.2013, 14:03)
---------------------------------------------
Делал так:
 РегистрНакопления: ОстаткиПоЛимитам.
 Документ - УстановкаЛимита.

 УстановкаЛимита движения:
 + Лимит на текущий месяц
 - Остаттки по лимитам за прошлый

 Подписка на проведение СписаниеДС

 - На сумму списания

 Ну и проверки соответственно.


freefly

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: alex
Задача 2.31
« Ответ #7 : Август 19, 2013, 02:19:56 pm »
kastrtroy2006, поверь, лучше ргистр сведений. Даже не так. Только регистр сведений. Независимый.
« Последнее редактирование: Август 19, 2013, 02:22:23 pm от alex »

kastrtroy2006

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Веряскин Артем
Задача 2.31
« Ответ #8 : Август 19, 2013, 02:21:44 pm »
Объясните почему.

freefly

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: alex
Задача 2.31
« Ответ #9 : Август 19, 2013, 02:32:12 pm »
По условию нужно просто указать лимиты на месяц для подразделений. Регистр накопления - избыточная штука для таких задач.
 Ведь не факт, что вообще будут продажи (теоретически). Зачем гонять такой объект платформы, как регистр накопления.
 А вот движения денежных средств (даже слово "движение" не выкинуть из фразы) уже пишем в регистр накопления, скажем "ОборотыЛимитов".

kastrtroy2006

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Веряскин Артем
Задача 2.31
« Ответ #10 : Август 19, 2013, 02:42:25 pm »
Вроде правильно. Но когда в задании указано, что надо строить отчет по остаткам чего либо, в голове первое, что надо делать регистр накопления.

DrShust

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: DrShust
Задача 2.31
« Ответ #11 : Август 19, 2013, 05:01:11 pm »
kastrtroy2006, Документ - УстановкаЛимита интересная тема. Но если и делать этот документ, тогда следом зависимый регистр сведений, у которого регистратор как раз этот документ. Но в условии задачи об этом не сказано - значит, излишество. Будет если время на экзамене, то, может быть, в плюс пойдёт. Но только, если время останется.

oltie

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: oltie
Задача 2.31
« Ответ #12 : Август 20, 2013, 09:35:03 am »
Цитата (kastrtroy2006)
Но когда в задании указано, что надо строить отчет по остаткам чего либо, в голове первое, что надо делать регистр накопления.

 поэтому и строится отчет по регистру накопления "Расчеты с поставщиками". зачем создавать новый регистр, изменять проведение документов, если в конфигурации уже всё есть ?
« Последнее редактирование: Август 20, 2013, 09:35:30 am от oltie »

gugenotka

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: gugenotka
Задача 2.31
« Ответ #13 : Август 27, 2013, 04:23:10 pm »
oltie, в предложенном решении же получается, что если лимиты исчерпаны, но заявка заполнена, то Списание всё равно не проводится. Думаю, это неправильно.

Glime

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Стас
Задача 2.31
« Ответ #14 : Август 28, 2013, 04:33:31 pm »
а у меня такой вопрос, если до исчерпания лимита делались СБДС на основание заявок на расходование средств, нужно ли учитывать их в списание лимита или они идут всегда как сверхлимитные.

Nechipury

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Нечипоренко Евгений Александрович
Задача 2.31
« Ответ #15 : Август 29, 2013, 04:49:50 pm »
Кто делал как я тот я....
 1.Создаем РС и Док с движениями например ЛимитДенежныхСредств
 2.Делаем общий модуль , где проверяем превышение лимита и возвращаем булево.
 3.Есть такой общий модуль ДенежныеСредстваСервер находим там РазрешеныПлатежиБезУказанияЗаявок и прям в этой функции вызываем наш модуль = в зависимости от значения возврат Ложь.

 Функция РазрешеныПлатежиБезУказанияЗаявок(ДокументОбъект) Экспорт
    //+2.30
     Если Задача.ПревышенЛимитДС(ДокументОбъект) = Истина Тогда
        Если ДокументОбъект.ЗаявкаНаРасходованиеДенежныхСредств.Пустая() Тогда
       Сообщение = Новый СообщениеПользователю;
       Сообщение.Текст = "Лимит ДС исчерпан!";
       Сообщение.Сообщить();
       Возврат Ложь;
       КонецЕсли;
       
    КонецЕсли;   
    //-2.30

 4.В менеджере док.СписаниеБезналичныхДенежныхСредств добавляем МассивРеквизитовОперации.Добавить("Подразделение");
 5.Ну и модулеОбъекта родимом нашем запиливаем

 Процедура ОбработкаПроведения(Отказ, РежимПроведения)

 ////+2.31   
 Если ДенежныеСредстваСервер.РазрешеныПлатежиБезУказанияЗаявок(ЭтотОбъект) = Ложь И
    ЭтотОбъект.ЗаявкаНаРасходованиеДенежныхСредств.Пустая() Тогда
    Отказ = Истина;
 Иначе
    Отказ = Ложь;
 КонецЕсли;
 6.Делаем Отчет в СКД

VaKiSe

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: VaKiSe
Задача 2.31
« Ответ #16 : Сентябрь 18, 2013, 11:38:01 pm »
Предлагаю такое решение очень простое и быстрое:

 1.) Создаем Рег. Нак. "ЛимитыПоПодразделениям"
 2.) Создаем документ "Ввод лимита на месяц"
 документ обнуляет лимит по всем подразделениям за прошлый месяц "-"(если они не израсходованы) и вводит записи на новый (как сказано в условии)со знаком "+".
 3.) При проведении документов расходования Д/С (через подписку на события) расходуем из РН лимит и контролируем остаток(как сказано в условии), если лимита не хватает выводим сообщение мол сделайте заявку на не хватаемую сумму.
 4.) При проведении документа "Заявка на расход Д/С" опять же через подписку делаем запись в регистр со знаком "+" тем самым увеличиваем лимит по выбранному подразделению!
 5.) Лепим примитивный отчет в СКД по остаткам Рег.нак. "ЛимитыПоПодразделениям"
 6.) Все!

asu2

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: asu2
Задача 2.31
« Ответ #17 : Октябрь 02, 2013, 09:30:40 am »
Мой вариант... на проверку

Добавлено (02.10.2013, 09:29)
---------------------------------------------
.

Добавлено (02.10.2013, 09:30)
---------------------------------------------
блин почему не прикрепляются файлы............


reckoner

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: reckoner
Задача 2.31
« Ответ #18 : Октябрь 06, 2013, 02:21:36 pm »
Если бы я делал, то сделал бы вариант как у VaKiSe, тоже так думаю.
 Один Рег. Накопления, по нему устанавливаем изначально лимиты ПРИХОД, а документ Списание делает РАСХОД по ним с соответствубщенй проверкой на не превышение.
 Только непонятно зачем пункт 4, про это в задаче не сказано, лимит повышать не нужно. На то он и лимит, чтобы один раз установиться.
 Кто что думает еще?

VaKiSe

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: VaKiSe
Задача 2.31
« Ответ #19 : Октябрь 09, 2013, 12:02:56 am »
reckoner, согласен с тобой думаю пункт 4 не нужен. Да и еще, я думаю, что в этой задаче нужна управляемая блокировка, перед запросом к остатку лимита по подразделению. И еще, я дела подразделение доп. сведением, чтобы не вносить в типовую форму документа изменение(хотя реквизит подразделение есть, но он не виден при оплате поставщику)

SanPav

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 2.31
« Ответ #20 : Октябрь 10, 2013, 03:49:43 pm »
В данной задаче дополнительный регистр не нужен.
 Вполне можно обойтись штатным регистром "Денежные средства к выплате".
 Мой вариант решения:
 1. Использование заявок на расходование ДС в настройках программы включаем.
 2. У банковских счетов разрешаем списание ДС без заявок. Контролировать будем через доп. обработку сами.
 3. Лимиты устанавливаем документами  "Заявки на расходование ДС" для каждого подразделения, где операция = "Прочие расходы", Дата платежа = начало месяца на который устанавливается лимит, а контрагент, счет = предопределенные значения, например, с наименованием "Для лимитов", статья расходов с аналитикой "Подразделение".
 4. Включаем видимость реквизита "Подразделение" в форме документа "Списание безналичных ДС" для операций "Оплата поставщику". Изменения вносятся в процедуру ЗаполнитьИменаРеквизитовПоХозяйственнойОперации модуля менеджера документа. Нужно заполнять для проверки далее.
 5. Создаем подписку на событие проведения документа "Списание безналичных ДС". Где если заявка не заполнена, то проверяем остаток по регистру "Денежные средства к выплате" по предопределенным значениям аналитики учета по партнерам, статье расхода, подразделению, заявке, статье движения ДС и периоду установки.  Сравниваем ее с суммой документа, если все ОК, то списываем сумму документа с этого регистра по проверочным измерениям. Иначе отказ от проведения с соответствующим сообщением об ошибке.
 6. Отчет строим все по тому же штатному регистру  "Денежные средства к выплате".

reckoner

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: reckoner
Задача 2.31
« Ответ #21 : Октябрь 10, 2013, 04:19:28 pm »
Интересно вот что - откуда брать проверяемое подразделение для документа СписаниеБезналичныхДенежныхСредств?
 И еще насколько я понял, все таки нужно использовать типовой регистр, а не создавать свой. Вот к примеру подойдет Движения Денежные средства Контрагент (там есть подразделение).
 Но с другой стороны документ может писать туда РАЗНЫМИ подразделениями. Как тогда реализоывать условие проверки для Заявки на расходование? (оно действует по одному подразделению). Вообщем запутался.

Добавлено (10.10.2013, 16:19)
---------------------------------------------
SanPav,  Можете сделать выкладки кода? Интересует как вы реализовали условия на проверку заполненности Заявки на Расходование в зависимости от введенности лимита.


SanPav

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 2.31
« Ответ #22 : Октябрь 10, 2013, 04:20:19 pm »
reckoner
 см. п. 4
 регистр используем один = "Денежные средства к выплате". 
 Пробуем сделать по шагам в базе, смотрим движения, и все станет ясно.

VaKiSe

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: VaKiSe
Задача 2.31
« Ответ #23 : Октябрь 10, 2013, 08:51:06 pm »
Кто бы мог подумать! Спасибо,  SanPav!

reckoner

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: reckoner
Задача 2.31
« Ответ #24 : Октябрь 10, 2013, 08:54:13 pm »
Кто-нибудь запилите сам код проверки на превышение лимита.
 Непонятно как это делается у oltie и у Nechipury.

 SanPav, вы хоть и предложили вариант, он мне не очень понятен.

 Вот мой вариант -
 1. Включаем видимость подразделения.
 2. Используем регистр ДвиженияДенежныеСредстваКонтрагент (там есть подразделение). Делаем, чтобы док писал туда подразделение из шапки. (до изменений он пишет из ТЧ)
 3. Проверяем чтобы лимит не был превышен -> Обороты с начала месяца по ДвиженияДенежныеСредстваКонтрагент не превышали наш лимит по подразделению.

 НО, оно мне не нравится. Судя по всему люди в топике по другому решали..

 ---------
 SanPav, поделитесь кодом!
« Последнее редактирование: Октябрь 10, 2013, 09:46:14 pm от reckoner »

SanPav

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 2.31
« Ответ #25 : Октябрь 12, 2013, 08:40:58 am »

 Подписка на событие проведения документа "Списание безналичных ДС":
  

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


Вложения:
7708093.erf

samson12

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Юрий
Задача 2.31
« Ответ #26 : Октябрь 24, 2013, 10:22:37 pm »
Добрый день! Что то не работает ваш код. Ошибка возникает в момент перепроведения документа Списание денежных средств. Программа пишет, что менеджер временных таблиц не обнаружен!. Может что-нибудь ещё надо было сделать, кроме как добавить в модуль менеджера строку для подразделения?

Avet

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Аветис
Задача 2.31
« Ответ #27 : Октябрь 30, 2013, 05:05:25 pm »
« Последнее редактирование: Октябрь 30, 2013, 05:27:30 pm от Аветис »

brazil

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Бразил
Задача 2.31
« Ответ #28 : Ноябрь 14, 2013, 12:11:14 pm »
ключевые моменты: остатки лимитов не переходят на следующий месяц, оплата поставщику, безналичный расчет.

 ошибки в решениях (на мой взгляд):
  - получение информации не из регистров, а из реквизитов документов (в отчетах, в функциях), например у SanPav . При сдаче платформы  это было бы сразу НЕ сдача.
  - не сведение остаточного регистра в ноль (в некоторых решениях есть попытки выхода в ноль).
  - использовании РН."Движение средства к выплате", без проверки реквизитов регистратора невозможно определить способ оплаты (нал/безнал)

 пока вижу два решения:
 1. РС.Лимиты,
     Суммы сверх лимитов (т.е. по заявкам) - берем из РН."Движение средства к выплате".Обороты(Периодичность=Регистратор) где регистратор=СписаниеБезналки
     Сумма в рамках лимита = Сумма по РН."Движение средств контрагент".Оборот(хоз.опер=оплата пост, тип ден средств=безнал) - Суммы сверх лимитов
 Заставить Документ.СБДС заполнять измерение Подразделение в РН."Движение средств контрагент" при незаполненной заявке.
 Почему-то этот вариант не нравиться.

 2. Все завязываем на новый РН.ОБОРОТНЫЙ "Бюджет" с измерением ТипДвижения=Лимит/СуммаПоЛимиту/СуммаПоЗаявке. новый документ делает движения по лимиту. Документ.СБДС -по суммам в зависимости от заполнения.
 это решение более гибкое к дальнейшим хотелкам клиента.

Nathalie

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Nathalie
Задача 2.31
« Ответ #29 : Ноябрь 18, 2013, 08:28:33 pm »
brazil, для этой задачи нужно использовать существующие регистры.

LepRiKonS

  • Пользователь
  • **
  • Сообщений: 49
  • ФИО: Павел
Задача 2.31
« Ответ #30 : Январь 04, 2014, 03:54:35 pm »
Вот комментарии человека, кому попалась эта задача:
 http://programmist1s.ru/reshenie-zadachi-2-31-spetsialist-ut-11-1/

term1t

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Роман
Задача 2.31
« Ответ #31 : Январь 24, 2014, 04:44:36 pm »
Цитата reckoner ()
Делаем, чтобы док писал туда подразделение из шапки. (до изменений он пишет из ТЧ)

 Мне кажется это неправильно, ломать типовой механизм

katano

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: katano
Задача 2.31
« Ответ #32 : Апрель 21, 2014, 03:34:17 am »
Ошибка возникает в момент перепроведения документа Списание денежных средств. Программа пишет, что менеджер временных таблиц не обнаружен!

Oliver

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Юрий
Задача 2.31
« Ответ #33 : Апрель 26, 2014, 06:41:29 am »
А теперь как решать?)
Вложения:
2160301.png

Manticor

  • Пользователь
  • **
  • Сообщений: 25
Задача 2.31
« Ответ #34 : Май 16, 2014, 05:48:26 pm »
Цитата Oliver ()
А теперь как решать?)
Это на каком релизе сделали УТ? Вроде в старой предидущей версии такх настроек нет).
 нужноеще и утончить на какой версии будет экзамен приниматься.
 У кого есть правильнео решение этой задачи с использованием типовым механизмов?

Oliver

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Юрий
Задача 2.31
« Ответ #35 : Май 20, 2014, 05:55:48 am »
Это на релизе 11.1.6.*, а я сдавал на 11.1.2.*
 Ну методически всегда верное это как 1С делает. 1С сделала на оборотах, при записи проверяются обороты за текущий месяц.
 Однако, в требованиях: ошибочным является стиль программирования, при котором получение любых показателей остатков (ну у нас же лимит бюджета, и он расходуется) производится складываением оборотов smile

non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Re: Задача 2.31
« Ответ #36 : Ноябрь 08, 2014, 07:57:13 pm »
Мне кажется, что решение должно строиться на дополнительном Регистре Накопления с видом Обороты, по аналогии с задачей из Специалиста по платформе и по аналогии с типовым механизмом в УПП.

Отдельный документ "Установка лимита" оборот по ресурсу "Лимит"
Подписка на событие к документу "Расходный кассовый ордер", в случае если оплата поставщику, оборот по ресурсу "Расход".
Если обнаруживается оплата сверх лимита оборот по ресурсу "Сверх лимита" достаточно простое решение

non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Re: Задача 2.31
« Ответ #37 : Ноябрь 10, 2014, 02:50:17 pm »
При создании новых объектов включаем их в подсистему «Планирования ДС», так же включаем использование при включенной функциональной опции «ИспользоватьПланированиеДенежныхСредств». И включаем объекты в роль «РазделДенежныеСредства», что бы был доступ не только у пользователей с полными правами.

При определении способа решения задачи, основной задаче для себя ставил минимальное количество модификаций объектов конфигурации поставщику.

В конфигурации затронут МодульМенеджера Документа «Списание безналичных денежных средств», пришлось вывести реквизит «Подразделение» на форму.
Затронут состав подсистемы «Финансы» и роль «РазделДенежныеСредства»

Для хранения информации о Лимитах денежных средств, создаем регистр накопления с видом «Обороты»
В качестве регистраторов используем документы «Установка лимитов» и «Списание безналичных денежных средств».


Для регистрации лимита используем документ «Установка лимитов», прописываем обработку проведения.

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



Отражаем факт по расхода по лимиту, расхода сверх лимита и контроль проведения по лимиту реализуем через дополнительную подписку на событие «ОбработкаПроведенияДокумента». (важно поставить проверку на загрузку, в случае обмена данными отключаем проверку). При проверки остатка используем МоментВремени документа исключая движения самого документа для обеспечения перепроведенния документов. В задаче не указано, в случае наличия остатка лимита по подразделению и оплате по заявке списывать остаток или проводить как оплату сверх лимита. Решил списывать остаток, перерасход бюджета регистрирую в случае превышения остатка, причем первоначально закрываю сумму остатка а затем все остальное сверх лимита.

Процедура ОбработкаПроверкиЗаполнения(Источник, Отказ)

   Если Отказ ИЛИ Источник.ОбменДанными.Загрузка Тогда
      Возврат;
   КонецЕсли;

   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация,
      |   СписаниеБезналичныхДенежныхСредств.СуммаДокумента,
      |   СписаниеБезналичныхДенежныхСредств.ЗаявкаНаРасходованиеДенежныхСредств,
      |   СписаниеБезналичныхДенежныхСредств.Подразделение,
      |   СписаниеБезналичныхДенежныхСредств.Дата
      |ПОМЕСТИТЬ ВТ_ДанныеИзДокумента
      |ИЗ
      |   Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
      |ГДЕ
      |   СписаниеБезналичныхДенежныхСредств.Ссылка = &Ссылка
      |;
      |
      |////////////////////////////////////////////////////////////////////////////////
      |ВЫБРАТЬ
      |   ВЫБОР
      |      КОГДА Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот ЕСТЬ NULL
      |            ИЛИ НЕ ВТ_ДанныеИзДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику)
      |            ИЛИ НЕ ВТ_ДанныеИзДокумента.ЗаявкаНаРасходованиеДенежныхСредств = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
      |         ТОГДА ИСТИНА
      |      КОГДА ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0) - ВТ_ДанныеИзДокумента.СуммаДокумента > 0
      |         ТОГДА ИСТИНА
      |      ИНАЧЕ ЛОЖЬ
      |   КОНЕЦ КАК РазрешитьПроведение,
      |   ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0) - ВТ_ДанныеИзДокумента.СуммаДокумента КАК Нехватка
      |ИЗ
      |   ВТ_ДанныеИзДокумента КАК ВТ_ДанныеИзДокумента
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Экзамен_ЛимитыДенежныхСредств.Обороты(
      |            НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ),
      |            &МоментВремениИсключая,
      |            ,
      |            Подразделение В
      |               (ВЫБРАТЬ
      |                  ВТ_ДанныеИзДокумента.Подразделение
      |               ИЗ
      |                  ВТ_ДанныеИзДокумента КАК ВТ_ДанныеИзДокумента)) КАК Экзамен_ЛимитыДенежныхСредствОбороты
      |      ПО ВТ_ДанныеИзДокумента.Подразделение = Экзамен_ЛимитыДенежныхСредствОбороты.Подразделение";
   
   Запрос.УстановитьПараметр("Дата", Источник.Дата);
   Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
   Запрос.УстановитьПараметр("МоментВремениИсключая", Новый Граница(Источник.МоментВремени(), ВидГраницы.Исключая));
   
   РезультатЗапроса = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      Если Не ВыборкаДетальныеЗаписи.РазрешитьПроведение Тогда
         Отказ = Истина;
         Сообщение = Новый СообщениеПользователю;
         Сообщение.Текст = "Нехватка лимита денежных средств: " + ВыборкаДетальныеЗаписи.Нехватка;
         Сообщение.Сообщить();
      КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры

Процедура Экзамен_СписаниеБезналичныхДенежныхСредств_ОбработкаПроведенияОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
   
   ОбработкаПроверкиЗаполнения(Источник, Отказ);
   
   Если Отказ Тогда
      Возврат;
   КонецЕсли;
   
   Источник.Движения.Экзамен_ЛимитыДенежныхСредств.Записывать = Истина;
   Источник.Движения.Экзамен_ЛимитыДенежныхСредств.Очистить();
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   СписаниеБезналичныхДенежныхСредств.Дата КАК Период,
      |   СписаниеБезналичныхДенежныхСредств.Подразделение,
      |   ВЫБОР
      |      КОГДА СписаниеБезналичныхДенежныхСредств.ЗаявкаНаРасходованиеДенежныхСредств = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
      |            ИЛИ ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0) - СписаниеБезналичныхДенежныхСредств.СуммаДокумента > 0
      |         ТОГДА СписаниеБезналичныхДенежныхСредств.СуммаДокумента
      |      КОГДА НЕ СписаниеБезналичныхДенежныхСредств.ЗаявкаНаРасходованиеДенежныхСредств = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
      |         ТОГДА ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0)
      |   КОНЕЦ КАК Расход,
      |   ВЫБОР
      |      КОГДА НЕ СписаниеБезналичныхДенежныхСредств.ЗаявкаНаРасходованиеДенежныхСредств = ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
      |            И ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0) - СписаниеБезналичныхДенежныхСредств.СуммаДокумента < 0
      |         ТОГДА СписаниеБезналичныхДенежныхСредств.СуммаДокумента - (ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.ЛимитОборот, 0) - ЕСТЬNULL(Экзамен_ЛимитыДенежныхСредствОбороты.РасходОборот, 0))
      |      ИНАЧЕ 0
      |   КОНЕЦ КАК РасходСверхЛимита
      |ИЗ
      |   Документ.СписаниеБезналичныхДенежныхСредств КАК СписаниеБезналичныхДенежныхСредств
      |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Экзамен_ЛимитыДенежныхСредств.Обороты(НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ), &МоментВремениИсключая, , ) КАК Экзамен_ЛимитыДенежныхСредствОбороты
      |      ПО СписаниеБезналичныхДенежныхСредств.Подразделение = Экзамен_ЛимитыДенежныхСредствОбороты.Подразделение
      |ГДЕ
      |   СписаниеБезналичныхДенежныхСредств.Ссылка = &Ссылка
      |   И СписаниеБезналичныхДенежныхСредств.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику)";
   
   Запрос.УстановитьПараметр("Дата",    Источник.Дата);
   Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка);
   Запрос.УстановитьПараметр("МоментВремениИсключая", Новый Граница(Источник.МоментВремени(), ВидГраницы.Исключая));
   
   
   Источник.Движения.Экзамен_ЛимитыДенежныхСредств.Загрузить(Запрос.Выполнить().Выгрузить());
   
КонецПроцедуры

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


non1ka

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Тюрин Илья Александрович
Re: Задача 2.31
« Ответ #38 : Ноябрь 10, 2014, 02:51:17 pm »
Выкладываю отчет.

zainaz

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Aynaz Ziganov
Re: Задача 2.31
« Ответ #39 : Ноябрь 13, 2014, 03:27:07 pm »
Мелкая ошибочка в имени документа Экзамен_УстановкаЛимитаДенежныхСрепдств

JL

  • Новичок
  • *
  • Сообщений: 4
Re: Задача 2.31
« Ответ #40 : Январь 19, 2015, 12:21:36 pm »
Результаты с экзамена.
1. Надо обязательно использовать типовые регистр и документ.
2. Остатки нельзя получать сложением оборотов.
3. Регистр накопления оборотов в регистр остатков преобразовать нельзя, т.к. рушится работа конфигурации.

Как тогда быть? И какой период надо указывать в отчете?

danissimo

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 2.31
« Ответ #41 : Январь 22, 2015, 09:27:07 pm »
Релиз 11.1.9.61
1) Включить ф.о. “Заявки на расходование денежных средств” (все галочки).
2) Для р/с включить флаг «Разрешить списание ДС без заявок»
3) Документ Списание безналичных ДС – модуль менеджера
В процедуре “ЗаполнитьИменаРеквизитовПоХозяйственнойОперации” добавить реквизит для хозяйственной операции с видом “Оплата поставщику”:
МассивРеквизитовОперации.Добавить(“Подразделение”);
4) Документ Списание безналичных ДС – модуль менеджера
В функции ТекстЗапросаТаблицаЛимитыРасходаДенежныхСредств для хоз. операции Оплата поставщику переопределить выборку суммы в поле РасходВПределахЛимита, а не РасходСверхЛимита
ЕСТЬNULL(ТаблицаРасшифровкаПлатежа.Сумма, ДанныеДокумента.СуммаДокумента) * &КоэффициентПересчетаВВалютуУпр КАК РасходВПределахЛимита,
0 КАК РасходСверхЛимита
Для остальных операций соответственно добавить
0 КАК РасходВПределахЛимита,
5) Документ Списание безналичных ДС – модуль объекта
В процедуре СформироватьСписокРегистровДляКонтроля() добавить после Массив.Добавить(Движения.ДенежныеСредстваКВыплате); след. код.
Если ЭтотОбъект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОплатаПоставщику Тогда
Массив.Добавить(Движения.ЛимитыРасходаДенежныхСредств);
КонецЕсли;
6) Общий модуль ПроведениеСервер, Процедура ВыполнитьКонтрольРезультатовПроведения
В ветку
Если ЕстьИзмененияВТаблице(ДанныеТаблиц,”ДвиженияЛимитыРасходаДенежныхСредствИзменение”) Тогда
добавить след. код (где именно добавить понятно при проведении – выскакивает ошибка Поле ДатаПлатежа не найдено)
Если ТипЗнч(Объект) = Тип(“ДокументОбъект.СписаниеБезналичныхДенежныхСредств”) Тогда
Период = Объект.Дата;
7) В отчете Лимиты расхода ДС создаем новый вариант с подразделениями

Итого строк 40 кода, использование стандартного отчета, в конструктор запросов вообще не заходим, основная методика CtrlC – CtrlV.

Или все так просто, или я чего-то не понимаю  :-[

PS: на экзамене попался другой билет

danissimo

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 2.31
« Ответ #42 : Январь 22, 2015, 09:44:19 pm »
Пояснение.
Релиз 11.1.9.61. Функционал лимита расхода ДС уже реализован.
Стандартная схема работает следующим образом. Документ Лимит расхода ДС делает запись суммы в регистр Лимит расхода ДС по полю Лимит.
Заявка на расходование ДС делает запись суммы по полю Расход в пределах лимита. При установке флага Сверх лимита - по полю Расход сверх лимита.
При установленом флаге для р/с Разрешить списание ДС без заявок на оплату документ Списание безналичных ДС делает запись суммы по регистру Лимит расхода ДС по полю Расход сверх лимита. В противном случае (при отключенном флаге для р/с Разрешить списание ДС без заявок на оплату) движение по регистру делает документ Заявка на расходование ДС, на основании которой был введен документ Списание безналичных ДС.
В конфигурации реализована новая схема контроля остатков, т.е. сначала делается проведение по регистру, а потом в случае наличия отрицательных остатков выдается сигнал об ошибке и транзакция откатывается.
Проведение по регистрам и контроль правильности провдения выполняется стандартными механизмами конфигурации.

Решение работает след. образом.
В документе Списание безналичных ДС при проведении без заявки для хоз. операции Оплата поставщику делаем запись суммы в регистр Лимит расхода ДС по полю Расход в пределах лимита, а не по Расход сверх лимита. Также для этого документа добавляем регистр Лимит расхода ДС в список контролируемых регистров на наличие отрицательных остатков. В случае исчерпания лимита выдается сообщение об ошибке и документ не проводится.
Та же ошибка и при проведении Заявки на расходование ДС, что вынуждает использовать флаг Сверхлимита.
Далее на основании заявки вводим документ Списание безналичных ДС, который движений по этому регистру уже не делает.

В отчете Лимит расхода ДС есть графа Недорасход - остаток лимита.

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

frd

  • Пользователь
  • **
  • Сообщений: 40
  • ФИО: Павел
Re: Задача 2.31
« Ответ #43 : Август 05, 2015, 05:58:38 pm »
Для проведения "Заявки на расходование денежных средств" нужно поставить птичку "Сверх лимита" ?

И тогда движение по регистру "Лимиты расхода денежных средств" сделаем эта заявка, а не сам док "Списание безналичных ДС" ??

ВиталийЧебан

  • Проверенный
  • ***
  • Сообщений: 106
  • ФИО: Виталий Чебан
Re: Задача 2.31
« Ответ #44 : Август 06, 2015, 09:05:35 am »
Для проведения "Заявки на расходование денежных средств" нужно поставить птичку "Сверх лимита" ?

И тогда движение по регистру "Лимиты расхода денежных средств" сделаем эта заявка, а не сам док "Списание безналичных ДС" ??

Да.

frd

  • Пользователь
  • **
  • Сообщений: 40
  • ФИО: Павел
Re: Задача 2.31
« Ответ #45 : Август 28, 2015, 12:26:47 pm »
Пояснение.
Релиз 11.1.9.61. Функционал лимита расхода ДС уже реализован.
Стандартная схема работает следующим образом. Документ Лимит расхода ДС делает запись суммы в регистр Лимит расхода ДС по полю Лимит.
Заявка на расходование ДС делает запись суммы по полю Расход в пределах лимита. При установке флага Сверх лимита - по полю Расход сверх лимита.
При установленом флаге для р/с Разрешить списание ДС без заявок на оплату документ Списание безналичных ДС делает запись суммы по регистру Лимит расхода ДС по полю Расход сверх лимита. В противном случае (при отключенном флаге для р/с Разрешить списание ДС без заявок на оплату) движение по регистру делает документ Заявка на расходование ДС, на основании которой был введен документ Списание безналичных ДС.
В конфигурации реализована новая схема контроля остатков, т.е. сначала делается проведение по регистру, а потом в случае наличия отрицательных остатков выдается сигнал об ошибке и транзакция откатывается.
Проведение по регистрам и контроль правильности провдения выполняется стандартными механизмами конфигурации.

Решение работает след. образом.
В документе Списание безналичных ДС при проведении без заявки для хоз. операции Оплата поставщику делаем запись суммы в регистр Лимит расхода ДС по полю Расход в пределах лимита, а не по Расход сверх лимита. Также для этого документа добавляем регистр Лимит расхода ДС в список контролируемых регистров на наличие отрицательных остатков. В случае исчерпания лимита выдается сообщение об ошибке и документ не проводится.
Та же ошибка и при проведении Заявки на расходование ДС, что вынуждает использовать флаг Сверхлимита.
Далее на основании заявки вводим документ Списание безналичных ДС, который движений по этому регистру уже не делает.

В отчете Лимит расхода ДС есть графа Недорасход - остаток лимита.

Минусы - вмешиваемся в работу типового механизма.
Плюсы - все делается просто и быстро, вмешательство опять же использует стандартные механизмы.
Понравилось решение, вот только один момент смущает:
Если представить, что у нас установлен лимит 10000, и есть заявка (утверждена к оплате) на 1000 руб - мы не сможем оплатить 11000 руб, поскольку двинуть нужно 2 разных поля?

Dante

  • Новичок
  • *
  • Сообщений: 7
Re: Задача 2.31
« Ответ #46 : Октябрь 07, 2016, 09:42:47 am »
 Добрый день, попадалась ли данная задача кому-либо за последний год?
« Последнее редактирование: Октябрь 07, 2016, 09:49:25 am от Dante »

Fizk_11

  • Пользователь
  • **
  • Сообщений: 10
  • ФИО: Дмитрий
Re: Задача 2.31
« Ответ #47 : Март 04, 2017, 06:05:27 pm »
Доброго дня коллеги. Есть ли возможность использовать дату поставки и отгрузки настроенные в способе обеспечения в обработке "ФормированиеЗаказовПоставщикуПоПлану"??? Поставщиков она выдергивает, а вот дату поступления по заказу нет... в отличии от обработки "ПоПотребностям".
По утверждениям Справки:
"Период заказа (поле в обработке по потребностям) - расчитывается по рабочим дням компании, с учетом сроков исполнения заказов на закупку в способах обеспечения. Позволяет указать стандартный (расчитываемый) период, например "Сегодня", "Завтра", "Эта неделя", "Следующие 7 дней" для периодического формирования заказов поставщику, которые требуется создать для выполнения плана".
Толи я что то, где то упустил, или одно из двух. Помогите разобраться...
УТ(11.3.2.157) .