Форум Чистова. Подготовка к экзаменам 1С

Аттестация "1С:Специалист" => Аттестация "1С:Специалист по платформе 1С:Предприятие 8.3 и 8.2" => Тема начата: 1C_CoderVamp от Июль 21, 2010, 05:48:59 pm

Название: Задача 1.09
Отправлено: 1C_CoderVamp от Июль 21, 2010, 05:48:59 pm
Подозрительно легкая задача..... может я что-то упустил.... Здесь решено только то, что указано в тексте задания, на остальное не отвлекался, получилось вроде-бы неплохо))
Вложения:
109_1CCoder.dt
Название: Задача 1.09
Отправлено: tenikov от Август 11, 2010, 05:00:36 pm
Мой вариант.
Вложения:
tenikov_1.09.dt
Название: Задача 1.09
Отправлено: User67 от Сентябрь 14, 2010, 08:12:54 pm
Век живи, век учись, а я для аванса отдельный регистр делал(, но прошу пояснить в задании сказано, что если в приход денег указан проект, то погашается задолженность по нему, а оставшаяся часть идет как аванс, т.е. она на другие проекты не распределяется. Если я правильно во всех 3 конфигах идет погашение по всем проектам, и если деньги остались то они идут на аванс. Я вытаскиваю инфу таким запросом:
 
Quote
ВЫБРАТЬ
    ВзаиморасчетыОстатки.Проект,
    ВзаиморасчетыОстатки.СуммаОстаток КАК Сумма
 ИЗ
    РегистрНакопления.Взаиморасчеты.Остатки(
          &МоментВремени,
          Контрагент = &Контрагент
             И (Проект = &Проект
                ИЛИ &Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяССылка))) КАК ВзаиморасчетыОстатки

УПОРЯДОЧИТЬ ПО
    ВзаиморасчетыОстатки.Проект.ДатаОплаты


 Т.е. либо конкретный проект если он задан, если он не задан то остальные. Прокомментируйте ход мысли smile
Название: Задача 1.09
Отправлено: Mихаил от Сентябрь 23, 2010, 08:37:25 pm
1C_CoderVamp,
 1. вопрос по приведенному решению: почему в документе "приход денег" не используются блокировки данных, а в документе "расходная накладная" - используются, хотя принцип работы с данными один и тот же в этих документах (сначала данные считываются, а потом записываются в эти же регистры).
 2. ну и свойство конфигурации "Режим управления блокировкой данных" установлено "автоматический", ...тут явно автор забыл изменить на "управляемый"
Название: Задача 1.09
Отправлено: marku от Сентябрь 29, 2010, 11:06:54 pm
Вот как я решал
Вложения:
1.09_marku.dt
Название: Задача 1.09
Отправлено: 1C_CoderVamp от Сентябрь 30, 2010, 10:42:40 am
Mихаил,
 на самом деле там многое можно изменить в лучшую сторону, когда готовился к сдаче, то сильно не заморачивался на том, чтобы сделать задание на 100%, главное было уловить суть. Поэтому многие вещи либо забывал, либо просто не делал, чтобы не тратить на это время))

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

Название: Задача 1.09
Отправлено: Dima1C от Октябрь 08, 2010, 12:06:14 pm
Quote (marku)
Вот как я решал
 Прикрепления: 1.09_marku.dt(153Kb)

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

Я честно говоря добавил в проекты предопределенный элемент, Аванс и крутился вокруг него (не знаю правильно это или нет но очень удобно), Зачем в регистре нужно появление поля проекты с незаполненым значением, я не понял.

Название: Задача 1.09
Отправлено: 1C_CoderVamp от Октябрь 08, 2010, 01:24:03 pm
Quote (Dima1C)
Я честно говоря добавил в проекты предопределенный элемент, Аванс и крутился вокруг него (не знаю правильно это или нет но очень удобно), Зачем в регистре нужно появление поля проекты с незаполненым значением, я не понял.

 Насколько я помню задание, вся его суть сводилась к тому, чтобы как-то обозначить авансовые суммы, в моем случае использовалось пустое значение (раз не привязано ни к какому конкретному проекту, значит аванс), в твоем случае использовался предопределенный элемент, что тоже имеет право на жизнь, т.е. по сути разницы нет никакой
Название: Задача 1.09
Отправлено: AndreiPiter от Декабрь 21, 2010, 07:44:41 pm
моё решение, практически аналогично решению 1C_CoderVamp (которое считаю отпимальным)
Вложения:
1.09.dt
Название: Задача 1.09
Отправлено: maniacminer от Февраль 04, 2011, 12:56:51 pm
Мое решение, в задача легкая, но есть заморочь с блокировками
Вложения:
1_09_mm.dt
Название: Задача 1.09
Отправлено: Gulf_Stream от Февраль 12, 2011, 05:40:09 am
В общую копилочку, не сложная задача
Вложения:
_1.09.dt
Название: Задача 1.09
Отправлено: DoctorRoza от Июль 09, 2011, 05:44:08 pm
тоже выложу свое решение .. интересная задача .. ))
Вложения:
DoctorRoza_1_9.dt
Название: Задача 1.09
Отправлено: rnikinko от Июль 26, 2011, 09:24:58 am
Выложил свое решение, помоему напутал с блокировками, может кто посмотрит
Вложения:
1.9nik.dt
Название: Задача 1.09
Отправлено: kow1976 от Июль 27, 2011, 07:44:35 pm
DoctorRoza,

 Кажется, у вас не отрабатывает это условие.
 «Если сумма платежа превышает сумму отгрузки, то оставшиеся деньги должны быть зачтены как аванс.»
 Должно быть:
 Расход 1000
 Приход 1000
 Аванс 500
 И я думаю можно сделать блокировку по проекту из дока и по авансу. А у вас блокируются все проекты по контрагенту. Не знаю на сколько это критично?
Вложения:
s4681112.jpg
Название: Задача 1.09
Отправлено: DoctorRoza от Июль 27, 2011, 09:35:46 pm
kow1976, smile
 Скрин 1 .. ну я не стал тут туманить решение, если .. в начале провести приход, потом задним числом, ранней датой провести расход .. smile
Вложения:
s9082012.jpg
Название: Задача 1.09
Отправлено: kow1976 от Август 03, 2011, 07:34:13 pm
При решении решил использовать два регистра:
 1 ВзаиморасчетыПоДолгам – отгрузки приход(Расх нак) оплата расход(Приход денег)
 2 Аванс - приход оплата (Приход денег), расход(Расх нак).

 Один регистр не использую по двум причинам
 1. Считаю неправильным моделировать поведение регистра на пустом проекте или на предопределенном проекте.
 С таким подходом можно регистры не использовать, а программно организовать учет на реквизитах документов.

 2. Не возможно, построить заданный отчет по одному регистру в данной постановке задачи так как
 отгрузка приход(Расх нак) – взаиморасчеты по партиям
 отгрузка расход(Расх нак) – движения по авансу
 объединить в один столбец «отгрузки» в отчете в рамках одного регистра не получиться.

 Прошу общественность надругаться над следующим решениям.
Вложения:
kow1971.9.dt
Название: Задача 1.09
Отправлено: DoctorRoza от Август 03, 2011, 09:29:36 pm
kow1976, Ну а что .. нормальное решение .. 2 регистра .. Считать аванс отдельно .. тут не запутаешься. Может запросы увеличатся в размерах засчет обращений к регистру Авансов, но это мелочь. Только вот это смущает ..

 
Quote (kow1976)
1. Считаю неправильным моделировать поведение регистра на пустом проекте или на предопределенном проекте.
 С таким подходом можно регистры не использовать, а программно организовать учет на реквизитах документов.


 А есть ли принципиальная разница между предопределенным проектом и "непредопределенным"?
 Учет на реквизитах документов? Ради интереса, сделайте такое, а то у меня без регистров ничего не получается

 
Quote (kow1976)
2. Не возможно, построить заданный отчет по одному регистру в данной постановке задачи так как
 отгрузка приход(Расх нак) – взаиморасчеты по партиям
 отгрузка расход(Расх нак) – движения по авансу
 объединить в один столбец «отгрузки» в отчете в рамках одного регистра не получиться.


 Почему не получится? Все получится, только в конечном остатке минусы будут, но их можно объяснить в рамках принятой бизнес-модели! Сам не понял, что сказал, но звучит красиво! ))) Движения расходной - это, принимаем, минус, отгрузка. Приход денег на аванс - это плюс, оплата. Списать аванс для погашения расходной - это отгрузка для аванса, это минус. Остаток, если есть, для расходной - это оставшаяся отгрузка, это минус. Так что же тут нельзя объединить!? Поэтому вирт. таблица ОстаткиИОбороты и есть.
 /////////////////////////////////
 Не понял, Вы расходную в плюс отправляете .. и чистый приход по авансу в плюс! Не логично, совсем разные вещи! Что то в плюс, что то в минус!
Название: Задача 1.09
Отправлено: kow1976 от Август 03, 2011, 10:26:44 pm
Quote (DoctorRoza)
Почему не получится? Все получится,


 Совершенно правильно вы говорите, что будет минус. Кроме этого отгрузка по авансу будет попадать в Оплату. И тем самым меняет суть заданного отчета.

 
Quote (DoctorRoza)
Не понял, Вы расходную в плюс отправляете .. и чистый приход по авансу в плюс! Не логично, совсем разные вещи!


 Расходную в плюс так как по расходной нужны остатки плюсом в отчете. А в поступлении денег в минус так как отрицательных остатков не будет, в связи с записью в аванс.
 Соответственно аванс по поступлении денег в плюс(и всегда положительный), а в расходной в минус (и всегда положительный) так как избыток в плюс по взаиморасчетам.
 Получается замкнутый круг!!!
 Спасибо за коментарий
Название: Задача 1.09
Отправлено: DoctorRoza от Август 03, 2011, 10:35:03 pm
Тут главное понимать, что мы должны и что нам должны! Расходная - это что Нам должны, Аванс - это что Мы должны. Движение по авансу - это списание Нашего долга. Все логично!
Название: Задача 1.09
Отправлено: kow1976 от Август 03, 2011, 10:52:25 pm
DoctorRoza,
 Совершенно вы правы, но приход по авансу это расход по долгу, а в отчете их надо вставить в один столбец.
Вложения:
s5735699.jpg
Название: Задача 1.09
Отправлено: tan1c от Январь 23, 2012, 11:22:20 pm
Задачка не сложная, но нудная. Сначала хотел сделать у спр. проекты владельцем спр. контрагенты (как договора), но по отчету понял, что связь многие ко многим. И долго колебался, biggrin сделать аванс на пустую ссылку или предопределенным. Ну и полностью смоделировал данные в задаче, чтобы проверить, что у них ошибка в последней строчке отчета. Потратил больше времени чем планировал и решил выложить решение. biggrin
Вложения:
1.9_tan1c.dt
Название: Задача 1.09
Отправлено: sv_mikh от Март 18, 2012, 11:24:24 am
Мое решение
Вложения:
sv_mikh_01_09.dt
Название: Задача 1.09
Отправлено: МитькинБрат от Май 15, 2012, 12:48:48 pm
Всеобщее мнение задачка легкая. Может я чего-то не догоняю??? Вид отчета взаиморасчеты меня вводит в ступорjavascript://:
 1)допустим для РН Взаиморасчеты Оплата это приход, а отгрузка это расход, тогда почему по "васильку" положительный конечный остаток??? а если наоборот, тогда почему по "рабочему" и "сентябрю" положительный конечный остаток???javascript://

 2) как вообще возможно ввести начальный остаток по проекту??? ведь в условии сказано("при указании проекта в док-е ПриходД надо погасить сумму отгрузку по этому проекту, оставшуюся сумму провести как аванс"), а если нач. остаток это неоплаченная отгрузка, то как воспринимать последнюю стр. отчета взаиморасчетыjavascript://
 3) Как сформировать группировку по партиям в отчете состояние на 31 javascript:// Или один проект может открываться на несколько контрагентов???
Название: Задача 1.09
Отправлено: DoctorRoza от Май 15, 2012, 02:41:58 pm
Quote (МитькинБрат)
Вид отчета взаиморасчеты меня вводит в ступорjavascript://:

 Прикольный ступор! Это же сколько нужно кодить, чтобы такой .. заработать? smile
Название: Задача 1.09
Отправлено: МитькинБрат от Май 15, 2012, 08:41:07 pm
DoctorRoza, Поприкаловался? А теперь на вопросы ответь, по существу.! Или слабо?! javascript://:) ?
Название: Задача 1.09
Отправлено: DoctorRoza от Май 15, 2012, 10:00:29 pm
Quote (МитькинБрат)
DoctorRoza, Поприкаловался? А теперь на вопросы ответь, по существу.! Или слабо?! javascript://:) ?

 Сейчас, сборник качну, а то забыл уже эти задачи!

 Добавлено (15.05.2012, 21:59)
 ---------------------------------------------
 
Quote (МитькинБрат)
1)допустим для РН Взаиморасчеты Оплата это приход, а отгрузка это расход, тогда почему по "васильку" положительный конечный остаток??? а если наоборот, тогда почему по "рабочему" и "сентябрю" положительный конечный остаток???javascript://


 -Начнем с "василька".
 Для начала нужно определиться, что есть долг "нам", а что есть долг "Им". Положительный остаток по васильку - это, те 10000 и 5000, на которые мы отгрузили и столько нам должны. Смотрим взаиморасчеты за период - там василек оплачивал 5000 и 1000. Эти суммы он оплачивал по конкретным проектам, конкретным долгам. То есть в 2-х (допустим) приходах были проставлены конкретные проекты. У василька есть аванс - значит он есть и он его не трогает. Как он возник? Да заранее в долг нам дал денег, пустой приход сделал и деньги легли как наш долг перед ним!

 
Quote (МитькинБрат)
2) как вообще возможно ввести начальный остаток по проекту??? ведь в условии сказано("при указании проекта в док-е ПриходД надо погасить сумму отгрузку по этому проекту, оставшуюся сумму провести как аванс"), а если нач. остаток это неоплаченная отгрузка, то как воспринимать последнюю стр. отчета взаиморасчетыjavascript://


 - Начальный остаток по проекту - да отгрузили контрагенту без оплаты, в долг или кредит, и вот начальный долг его нам.
 Последняя строка в отчете, авансы - это наши долги. Тут с пролетарием больше смущает .. есть аванс 2500, еще нам дают в долг 3500, итого 6000, потом отгрузка по проекту 2 на 4000, которые берутся с аванса - отсюда и оплата по проекту и отгрузка по авансу на 4000. Как верно заметил товарищ kow1976 в (21) приход по авансу - это оплата по долгу. Что то тут непонятно, вроде лишние 4000, не соображу к вечеру!!

 
Quote (МитькинБрат)
3) Как сформировать группировку по партиям в отчете состояние на 31 javascript:// Или один проект может открываться на несколько контрагентов???


 -Ну а почему нет!? Тут конкретной привязки Контрагент-Проект нет. Группировка по партии .. не совсем понятно, что Вы имеете в виду .. тут партий нет .. есть отгрузка и оплата. Ну а проект - это одно из измерений РН.
Название: Задача 1.09
Отправлено: МитькинБрат от Май 15, 2012, 10:31:15 pm
DoctorRoza, спасибо за ответ.
 Уточняю:
 
Quote (DoctorRoza)
Последняя строка в отчете, авансы - это наши долги. Тут с пролетарием больше смущает .. есть аванс 2500, еще нам дают в долг 3500, итого 6000, потом отгрузка по проекту 2 на 4000, которые берутся с аванса - отсюда и оплата по проекту и отгрузка по авансу на 4000. Как верно заметил товарищ kow1976 в (21) приход по авансу - это оплата по долгу. Что то тут непонятно, вроде лишние 4000, не соображу к вечеру!!
 

 Имелось в виду не аванс, а проект3 по "сентябрю": когда нач.ост(= долг контрагента нам) 500, далее оплата 1500(уменьшение долга контрагента) и опять отгрузка 2000 (увеличение долга), конечный остаток 0!!!
 т.о:(-500+1500-2000)=0??? а не "-1000"

 Да смущало отсутствие привязки проекта к контрагенту (изначально возникла мысль о такой привязке)
 
Quote (DoctorRoza)
Ну а почему нет!? Тут конкретной привязки Контрагент-Проект нет.


 P.S. "Тут с пролетарием больше смущает", там понятно был аванс на 6000(2500+3500) с него списали 4000 и оприходовали как оплату проекта2
Название: Задача 1.09
Отправлено: RoMeL от Август 06, 2012, 11:30:39 pm
Немного извратилса, пошол своим путем, может кто протестирует? wacko
 Схема движений в картинке...
Вложения:
s9753542.png
RoMeL_1.9.dt
Название: Задача 1.09
Отправлено: ssserg от Август 13, 2012, 12:46:31 pm
Подскажите пожалуйста как в отчете "Состояние взаиморасчетов" в СКД настроить отображение колонки Аванс в последнем столбце?
Вложения:
task1.9.dt
Название: Задача 1.09
Отправлено: RoMeL от Август 13, 2012, 02:05:34 pm
Quote (ssserg)
Подскажите пожалуйста как в отчете "Состояние взаиморасчетов" в СКД настроить отображение колонки Аванс в последнем столбце?

 Вот так, например.
 P.S. Смотрел только отчет
Вложения:
task1.9_RoMeL.dt
Название: Задача 1.09
Отправлено: ssserg от Август 14, 2012, 04:23:20 pm
RoMeL, спасибо.
 Вопрос: что вы поменяли в пользовательских настройках?
 В СКД не могу этого увидеть...

 т.е. добавленный параметр Порядок я вижу, а вот воспроизвести ваш вариант отчета у меня получилось только после того, как я не только
 добавил в НаборДанных1 этот код,
 но и загрузил вариант пользовательских настроек отчета из вашего отчета в СКД.
Название: Задача 1.09
Отправлено: RoMeL от Август 14, 2012, 05:59:32 pm
ssserg, смотри макет

Добавлено (14.08.2012, 17:59)
---------------------------------------------
ssserg, а и сортировка по "Порядок"


Вложения:
s0497747.png
Название: Задача 1.09
Отправлено: ssserg от Август 14, 2012, 06:09:51 pm
RoMeL, точно.
 Только у вас ещё и столбец итоги не выводится.

 Разобрался это на вкладке "Дополнтельный настройки" в закладке "Настройки" в СКД нужно установить параметры
 Расположение общих итогов по горизонтали: Нет
 Расположение общих итогов по вертикали: Нет
Название: Задача 1.09
Отправлено: Andy63 от Сентябрь 14, 2012, 10:29:15 am
Quote (tan1c)
Мое решение
 Прикрепления: sv_mikh_01_09.dt(157Kb)
 

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

 Вот мое решение, вроде бы точно в соответствии с заданием. На самом деле если выполнить все условия задания то задача не покажется такой простой.
Вложения:
_1.9__ANdy.dt
Название: Задача 1.09
Отправлено: whisk001 от Ноябрь 30, 2012, 09:16:29 am
Похоже часть условий к задаче находится во втором отчете "Взаиморасчеты за период".
 ИМХО, во первых, в расходной накладной должна обрабатываться возможность 3-х движений, а не двух:
 Рассмотрим ситуацию с "красным цветком":
 Остаток аванса 1000.
 Делаем расходную накладную по проекту 2 на сумму 6000
 1-е движение - "Отгрузка" 6000
 2-е движение "Оплата" - 1000
 3-е движение "Зачет аванса" - 1000

 Ну и мне кажется, что в постановке задачи ошибка в отчете по контрагенту "Красный октябрь". Имеем остаток 500р. на начало месяца по проекту 3 - значит это не аванс. Отгрузка - 2000р. Оплата 1500. В остатке должна быть 1000.
Название: Задача 1.09
Отправлено: fimanich от Апрель 17, 2013, 03:05:19 pm
Цитата (whisk001)
Остаток аванса 1000.Делаем расходную накладную по проекту 2 на сумму 6000
 1-е движение - "Отгрузка" 6000
 2-е движение "Оплата" - 1000
 3-е движение "Зачет аванса" - 1000
А ведь ты, пожалуй, прав. Например, есть у нас расходная по проекту № 1 на 200 руб, из них она 100 руб. зачитывает авансом. Если делать отгрузку на 100 и зачет аванса на 100, то при формировании отчета по взаиморасчетам будет как будто бы по проекту №1 была отгрузка только на 100 руб. Так что конечно, по-хорошему бы сделать 3 движения, однако, явно в задаче на это не указано, поэтому лучше все-таки 2.
Название: Задача 1.09
Отправлено: fimanich от Апрель 18, 2013, 09:14:19 am
Прикрепляю мое решение. Критика приветствуется.

Добавлено (18.04.2013, 09:14)
---------------------------------------------

Цитата (whisk001)
Ну и мне кажется, что в постановке задачи ошибка в отчете по контрагенту "Красный октябрь". Имеем остаток 500р. на начало месяца по проекту 3 - значит это не аванс. Отгрузка - 2000р. Оплата 1500. В остатке должна быть 1000.
С этим согласен, респект тебе за внимательность.
Вложения:
fimanich_01_09.dt
Название: Задача 1.09
Отправлено: TuMyP1985 от Июнь 12, 2013, 08:40:37 pm
Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
Вложения:
KTT_1_9.dt
Название: Задача 1.09
Отправлено: bilateral от Июнь 13, 2013, 10:31:56 am
Мое решение. 
Цитата (TuMyP1985)
Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
Тоже не получилось без "1000". При этом второй отчет сам составился так же как в условии (после моделирования первого), и там тоже вылезла та самая 1000.
Вложения:
bilateral_upr_9.dt
Название: Задача 1.09
Отправлено: artfa от Июнь 21, 2013, 10:35:25 pm
Цитата (bilateral)
Мое решение.
 Цитата (TuMyP1985)
 Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
 Тоже не получилось без "1000". При этом второй отчет сам составился так же как в условии (после моделирования первого), и там тоже вылезла та самая 1000.
 Прикрепления: bilateral_upr_9.dt(150Kb)


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

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

 просмотрел решение bilateral, в вашем решении несколько ошибок;
 1. Вы намудрили с блокировками, все можно было сделать намного проще;
 2. Условие
Код
Запрос.УстановитьПараметр("МоментВремени", ?(Режим = РежимПроведенияДокумента.Неоперативный,МоментВремени(),Неопределено););
здесь совершенно не к чему, почитайте в СП про момент вермени.
 3. и еще похоже у вас неправильные алгоритмы, так как при проведении расходной в случе анличия аванса должны делаться 3 движения, т.е. 1-отргрузка по проекту, 2-уменьшения аванса на сумму отгрузки либо сумму аванса, 3-оплата по огрузке на сумму из п.2, а у вас делаются только два (см. цитату ниже).
 есть +, вы настроили отчет через дополнительное поле порядок, взял себе на вооружение

 Добавлено (21.06.2013, 22:35)
 ---------------------------------------------
 
Цитата (whisk001)
Похоже часть условий к задаче находится во втором отчете "Взаиморасчеты за период".
 ИМХО, во первых, в расходной накладной должна обрабатываться возможность 3-х движений, а не двух:
 Рассмотрим ситуацию с "красным цветком":
 Остаток аванса 1000.
 Делаем расходную накладную по проекту 2 на сумму 6000
 1-е движение - "Отгрузка" 6000
 2-е движение "Оплата" - 1000
 3-е движение "Зачет аванса" - 1000

 так оно и есть

 кому интересно, выгрузку прилагаю
Название: Задача 1.09
Отправлено: artfa от Июль 28, 2013, 11:24:17 pm
соптимизировал запросы, доделал отчеты
Вложения:
1.9.dt
Название: Задача 1.09
Отправлено: Voyager от Сентябрь 28, 2013, 10:09:32 pm
Выкладываю свое решение, мб кто-нибудь прокомментирует.

 Решал на двух регистрах. После того, как решил, просмотрел пару решений тех коллег из этой ветки, которые тоже решали на двух регистрах. Мое решение оказалось довольно простым по сравнению, например, с решением kow1976
Вложения:
Voyager_1.9.dt
Название: Задача 1.09
Отправлено: YFred от Апрель 17, 2014, 01:51:54 pm
Посмотрите если не трудно мое решение. Готов обсудить задачу.
Вложения:
YFred_1.9.dt
Название: Задача 1.09
Отправлено: Demy от Апрель 27, 2014, 10:29:41 am
И мое решение посмотрите. Заранее благодарен.

Добавлено (27.04.2014, 10:29)
---------------------------------------------
YFred, посмотрел твою задачу. Вот замечания:
 1. Может это и не важно, но в задании написано, что отгрузка фиксируется документом "Расходная накладная". Зачем создавать еще один документ? Не знаю как экзаменатора, но меня это запутало.
 2. Опять же блокировки слишком суровые.
 3. Если проводить документ "Приход денег", а долгов по проектам нет, то аванс уходит в минус. Если так и задумано, то надо чтобы отчет этот минус не выводил.


Вложения:
Demy_1_9.dt
Название: Задача 1.09
Отправлено: Demy от Апрель 27, 2014, 10:36:22 am
Кстати заметил у себя косяк. В документе "Приход денег" забыл убрать блокировку на проект, ведь надо блокировать весь регистр по контрагенту. Исправил.
Вложения:
Demy_1_9_1.dt
Название: Задача 1.09
Отправлено: EfKonstanin от Сентябрь 27, 2014, 08:54:15 am
Я вот не пойму, почему практически все решения здесь построены на 1 РН. Ведь если внимательно читать условие, то в нем можно найти строчку "Аванс числится просто за контрагентом без учета проекта", поэтому считаю что корректнее всего решать ее на 2 РН.
Название: Re: Задача 1.09
Отправлено: Nelli83 от Ноябрь 11, 2014, 07:05:43 pm
Здравствуйте!

Проверьте пожалуйста, мой вариант решения задачи 1.09. не совсем уверена в установленных  блокировках. Решила на одном РН. Меня правда еще смущает отчет по взаиморасчетам за период (последняя строка), мне кажется ошибка вкралась в задачу
Название: Re: Задача 1.09
Отправлено: olsput от Ноябрь 27, 2014, 11:06:59 am
Предлагаю свое решение. Тоже опирался на опыт, изложенный в опубликованных решениях.
Делал на одном регистре - Взаиморасчеты. Завел отдельный проект Аванс, и настроил на него константу.
Главный нюанс при решении через один регистр - что по сути проводки Прихода денег на проект Аванс
по логике бухгалтерии должны идти со знаком  "-". А отгрузки - это "+"
Но тогда остаток Денегн на проекте Аванс - тоже будут со знаком "-". Что не согласуется с предложенным вариантом отчета.
Поэтому проводки делал на Аванс тоже как +
И в отчете (на СКД) корректровал логику покрытия задолженности по проекту и ден.средства на авансе так:

   ВЫБОР
      КОГДА ВзаиморасчетыОстаткиИОбороты.Проект = &Аванс
         ТОГДА ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.СуммаРасход, 0)
      ИНАЧЕ ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.СуммаПриход, 0)
   КОНЕЦ КАК Отгрузка,
   ВЫБОР
      КОГДА ВзаиморасчетыОстаткиИОбороты.Проект = &Аванс
         ТОГДА ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.СуммаПриход, 0)
      ИНАЧЕ ЕСТЬNULL(ВзаиморасчетыОстаткиИОбороты.СуммаРасход, 0)
   КОНЕЦ КАК Оплата
Название: Re: Задача 1.09
Отправлено: Odines от Декабрь 16, 2014, 12:40:11 pm
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл
Название: Re: Задача 1.09
Отправлено: Eufes от Декабрь 16, 2014, 10:03:00 pm
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл

В целом норм по логике :)
В остальном:

1. Для чего этот код в проведении "Приход денег" ?
Если НЕ ЭтоНовый() Тогда
   Движения.Взаиморасчеты.Записать();
КонецЕсли;
Эта конструкция явно очищает движения документа при перепроведении. И поэтому строка ниже (с границей) не будет иметь смысла.
Но и по ней ест замечание:
При неоперативном проведении мы же не должны прочитать те движения, которые сделал сам документ, поэтому надо исключать:
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
    Граница = Неопределено;
Иначе   
    Граница = Новый Граница(МоментВремени(),ВидГраницы.Исключая);
КонецЕсли;

На мой взгляд, при неоперативном перепроведении, очищая движения вы тем самым искажаете остатки ведь в этот момент их кто-то может считать, а у вас отмена транзакции произошла. В таком случае бы надо сперва установить блокировку, но допустим, вы решили поменять проект, или еще хуже контрагента, тогда тоже не вариант. Правильней будет воспользоваться методом подробно описанном здесь
http://1c.chistov.pro/2013/07/blog-post_25.html


2. Судя по задаче если в приходе Проект не указан, то все идет в авансы. Условий на заполненность этого реквизита нет.
По этому же пункту я , думаю, что необходимо устанавливать блокировку еще и по проекту (если заполнен), ведь от чтения нам надо заблокировать только в разрезе проектов.

3. В отчете по состоянию надо добавить порядок, так чтоб авансы в конце отчета были.

Плюс можно, я думаю, обойтись без предопределенного элемента проектов "Авансы", опираясь на знак по регистру остатков.
Название: Re: Задача 1.09
Отправлено: Odines от Январь 12, 2015, 05:13:37 pm
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл

В целом норм по логике :)
В остальном:

1. Для чего этот код в проведении "Приход денег" ?
Если НЕ ЭтоНовый() Тогда
   Движения.Взаиморасчеты.Записать();
КонецЕсли;
Эта конструкция явно очищает движения документа при перепроведении. И поэтому строка ниже (с границей) не будет иметь смысла.
Но и по ней ест замечание:
При неоперативном проведении мы же не должны прочитать те движения, которые сделал сам документ, поэтому надо исключать:
Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
    Граница = Неопределено;
Иначе   
    Граница = Новый Граница(МоментВремени(),ВидГраницы.Исключая);
КонецЕсли;

На мой взгляд, при неоперативном перепроведении, очищая движения вы тем самым искажаете остатки ведь в этот момент их кто-то может считать, а у вас отмена транзакции произошла. В таком случае бы надо сперва установить блокировку, но допустим, вы решили поменять проект, или еще хуже контрагента, тогда тоже не вариант. Правильней будет воспользоваться методом подробно описанном здесь
http://1c.chistov.pro/2013/07/blog-post_25.html


2. Судя по задаче если в приходе Проект не указан, то все идет в авансы. Условий на заполненность этого реквизита нет.
По этому же пункту я , думаю, что необходимо устанавливать блокировку еще и по проекту (если заполнен), ведь от чтения нам надо заблокировать только в разрезе проектов.

3. В отчете по состоянию надо добавить порядок, так чтоб авансы в конце отчета были.

Плюс можно, я думаю, обойтись без предопределенного элемента проектов "Авансы", опираясь на знак по регистру остатков.
Спасибо, принял к сведению все замечания. Отдельное спасибо за статью. Правда я не совсем понял причем там движения которые в форме, но в целом почерпнул из нее многое!!!
Название: Re: Задача 1.09
Отправлено: naumenko_alex от Май 17, 2015, 01:19:49 pm
Выкладываю своё решение на 2 регистрах и с нормальным отчетом.
Название: Re: Задача 1.09
Отправлено: Jones от Май 20, 2015, 01:02:14 pm
Решил максимально просто (главное, чтобы не слишком)
Жду критики. Надеюсь, в принципе, все верно.

В обоих документах (и в РН и в ПриходеДенег) контроль остатков выполняю по старой методике.
-Записываю пустые движения
-Движения.ДолгиПокупателей.Записывать = Истина;
-Блокирую объектом
-Запрос к остаткам
и если их достаточно, то
-формирование движений
Название: Re: Задача 1.09
Отправлено: naumenko_alex от Май 20, 2015, 10:22:33 pm
Решил максимально просто (главное, чтобы не слишком)
Жду критики. Надеюсь, в принципе, все верно.

В обоих документах (и в РН и в ПриходеДенег) контроль остатков выполняю по старой методике.
-Записываю пустые движения
-Движения.ДолгиПокупателей.Записывать = Истина;
-Блокирую объектом
-Запрос к остаткам
и если их достаточно, то
-формирование движений

1.Блокировка в док.  не правильно установлена. Блокируется не все движения по контрагенту,а только в значении контрагент,проект.
2.Не корректно работает разработанный алгоритм при отмене проведения документов. В регистре образовываются минусовые остатки.
3. В Отчете состояние взаиморасчетов задолженность по проекта выводиться со знаком минус.
Дальше не смотрел задача не решена.
Название: Re: Задача 1.09
Отправлено: Jones от Май 21, 2015, 03:10:26 pm
Какой Вы суровый. Надеюсь Вы не принимаете экзамены?
Благодарю за критику. Постараюсь все учесть.
Название: Re: Задача 1.09
Отправлено: Sergey-Vl от Июнь 22, 2015, 03:24:47 pm
Пожалуйста, покритикуйте решение.
Название: Re: Задача 1.09
Отправлено: Zeskord от Сентябрь 04, 2015, 11:42:10 am
Пожалуйста, покритикуйте решение.

В справочнике Проекты есть какой-то предопределенный проект "Аванс". Аванс - это не проект, и почему я могу его выбрать в расходной накладной или в приходе денег?

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

Блокировка.Заблокировать();
Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();
Выборка.Следующий();
СуммаАвансаСписание = Мин(СуммаПоДокументу, -Выборка.СуммаОстаток);
И программа валится с ошибкой, когда результат запроса пустой. А это уже классифицируется как ошибка в программном коде.

Название: Re: Задача 1.09
Отправлено: Fat_Mike от Апрель 01, 2016, 10:55:56 am
Если не сложно, посмотрите пожалуйста решение.  ;)
Название: Re: Задача 1.09
Отправлено: LevSeverianin от Май 03, 2017, 02:34:15 pm
Для ПриходаДенег сделал две логики проведения, для заполненного и пустого проекта.
Авансы не только погашаются но и зачитываются на проект и только затем списываются, чтобы не вышло ситуации когда в отчете нет проектов - одни авансы.
Весь код прокомментирован, кто сможет найти ошибки буду очень рад.
Название: Re: Задача 1.09
Отправлено: jonik от Июнь 09, 2017, 02:18:56 pm
Всем привет. Сделал задачу с 1 одним регистром и все прекрасно списывается. Отчеты идентичны по структуре книжным.
Название: Re: Задача 1.09
Отправлено: jonik от Июнь 09, 2017, 02:23:40 pm
Для ПриходаДенег сделал две логики проведения, для заполненного и пустого проекта.
Авансы не только погашаются но и зачитываются на проект и только затем списываются, чтобы не вышло ситуации когда в отчете нет проектов - одни авансы.
Весь код прокомментирован, кто сможет найти ошибки буду очень рад.

Непонятно почему документ "Приход денег" делает приходные движения в регистр. По логике нужно создать регистр Взаиморасчеты(обмен наших услуг на денежные средства контрагентов) в котором отражаются приходные движения по продаже этих услуг(РасходнаяНакладная) и расходные по поступлению денег(ПриходДенег)
Название: Re: Задача 1.09
Отправлено: jonik от Ноябрь 29, 2017, 04:23:14 pm
Всем привет. Сделал задачу с 1 одним регистром и все прекрасно списывается. Отчеты идентичны по структуре книжным.
Подкорректировал
Название: Re: Задача 1.09
Отправлено: KlintuhovDE от Декабрь 04, 2017, 12:44:27 am
Решение на двух регистрах мне показалось более элегантно.
Выкладываю свое решение. Почему-то не смог добиться порядка в проектов в отчетах (Проект 1, Проект 2, ... , Аванс), во всяком случае сходу не получилось.
Название: Re: Задача 1.09
Отправлено: НатальяЮГ от Май 05, 2018, 05:03:14 pm
Мой вариант  :)
Название: Re: Задача 1.09
Отправлено: НатальяЮГ от Май 05, 2018, 05:32:06 pm
Не то выгрузила  :(. Замена.
Название: Re: Задача 1.09
Отправлено: Videon от Июнь 07, 2019, 11:29:58 am
Выкладываю свое решение, мб кто-нибудь прокомментирует.

 Решал на двух регистрах. После того, как решил, просмотрел пару решений тех коллег из этой ветки, которые тоже решали на двух регистрах. Мое решение оказалось довольно простым по сравнению, например, с решением <b>kow1976</b><hr>Вложения:
<a href="./ucoz_attachments/9/Voyager_1.9.dt">Voyager_1.9.dt</a>
Чёртов гений ;)
Название: Re: Задача 1.09
Отправлено: Евгений_нвкз от Сентябрь 28, 2020, 12:47:53 pm
Всем Привет, выкладываю свое решение, покритикуйте плиз, если есть тут кто)