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

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

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.09
« : Июль 21, 2010, 05:48:59 pm »
Подозрительно легкая задача..... может я что-то упустил.... Здесь решено только то, что указано в тексте задания, на остальное не отвлекался, получилось вроде-бы неплохо))
Вложения:
109_1CCoder.dt

tenikov

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Денис Теников
Задача 1.09
« Ответ #1 : Август 11, 2010, 05:00:36 pm »
Мой вариант.
Вложения:
tenikov_1.09.dt


User67

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Юрий
Задача 1.09
« Ответ #2 : Сентябрь 14, 2010, 08:12:54 pm »
Век живи, век учись, а я для аванса отдельный регистр делал(, но прошу пояснить в задании сказано, что если в приход денег указан проект, то погашается задолженность по нему, а оставшаяся часть идет как аванс, т.е. она на другие проекты не распределяется. Если я правильно во всех 3 конфигах идет погашение по всем проектам, и если деньги остались то они идут на аванс. Я вытаскиваю инфу таким запросом:
 
Quote
ВЫБРАТЬ
    ВзаиморасчетыОстатки.Проект,
    ВзаиморасчетыОстатки.СуммаОстаток КАК Сумма
 ИЗ
    РегистрНакопления.Взаиморасчеты.Остатки(
          &МоментВремени,
          Контрагент = &Контрагент
             И (Проект = &Проект
                ИЛИ &Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяССылка))) КАК ВзаиморасчетыОстатки

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


 Т.е. либо конкретный проект если он задан, если он не задан то остальные. Прокомментируйте ход мысли smile

Mихаил

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Михаил
Задача 1.09
« Ответ #3 : Сентябрь 23, 2010, 08:37:25 pm »
1C_CoderVamp,
 1. вопрос по приведенному решению: почему в документе "приход денег" не используются блокировки данных, а в документе "расходная накладная" - используются, хотя принцип работы с данными один и тот же в этих документах (сначала данные считываются, а потом записываются в эти же регистры).
 2. ну и свойство конфигурации "Режим управления блокировкой данных" установлено "автоматический", ...тут явно автор забыл изменить на "управляемый"
« Последнее редактирование: Сентябрь 23, 2010, 08:47:36 pm от Михаил »

marku

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марк Козлов
Задача 1.09
« Ответ #4 : Сентябрь 29, 2010, 11:06:54 pm »
Вот как я решал
Вложения:
1.09_marku.dt

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.09
« Ответ #5 : Сентябрь 30, 2010, 10:42:40 am »
Mихаил,
 на самом деле там многое можно изменить в лучшую сторону, когда готовился к сдаче, то сильно не заморачивался на том, чтобы сделать задание на 100%, главное было уловить суть. Поэтому многие вещи либо забывал, либо просто не делал, чтобы не тратить на это время))

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


Dima1C

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Дмитрий
Задача 1.09
« Ответ #6 : Октябрь 08, 2010, 12:06:14 pm »
Quote (marku)
Вот как я решал
 Прикрепления: 1.09_marku.dt(153Kb)

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

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


1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.09
« Ответ #7 : Октябрь 08, 2010, 01:24:03 pm »
Quote (Dima1C)
Я честно говоря добавил в проекты предопределенный элемент, Аванс и крутился вокруг него (не знаю правильно это или нет но очень удобно), Зачем в регистре нужно появление поля проекты с незаполненым значением, я не понял.

 Насколько я помню задание, вся его суть сводилась к тому, чтобы как-то обозначить авансовые суммы, в моем случае использовалось пустое значение (раз не привязано ни к какому конкретному проекту, значит аванс), в твоем случае использовался предопределенный элемент, что тоже имеет право на жизнь, т.е. по сути разницы нет никакой
« Последнее редактирование: Октябрь 08, 2010, 01:24:40 pm от Василий »

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.09
« Ответ #8 : Декабрь 21, 2010, 07:44:41 pm »
моё решение, практически аналогично решению 1C_CoderVamp (которое считаю отпимальным)
Вложения:
1.09.dt
« Последнее редактирование: Декабрь 21, 2010, 07:49:57 pm от Андрей »

maniacminer

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: ilya panin
Задача 1.09
« Ответ #9 : Февраль 04, 2011, 12:56:51 pm »
Мое решение, в задача легкая, но есть заморочь с блокировками
Вложения:
1_09_mm.dt

Gulf_Stream

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Радомский Виктор Сергеевич
Задача 1.09
« Ответ #10 : Февраль 12, 2011, 05:40:09 am »
В общую копилочку, не сложная задача
Вложения:
_1.09.dt

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #11 : Июль 09, 2011, 05:44:08 pm »
тоже выложу свое решение .. интересная задача .. ))
Вложения:
DoctorRoza_1_9.dt

rnikinko

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: nikolay
Задача 1.09
« Ответ #12 : Июль 26, 2011, 09:24:58 am »
Выложил свое решение, помоему напутал с блокировками, может кто посмотрит
Вложения:
1.9nik.dt

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.09
« Ответ #13 : Июль 27, 2011, 07:44:35 pm »
DoctorRoza,

 Кажется, у вас не отрабатывает это условие.
 «Если сумма платежа превышает сумму отгрузки, то оставшиеся деньги должны быть зачтены как аванс.»
 Должно быть:
 Расход 1000
 Приход 1000
 Аванс 500
 И я думаю можно сделать блокировку по проекту из дока и по авансу. А у вас блокируются все проекты по контрагенту. Не знаю на сколько это критично?
Вложения:
s4681112.jpg
« Последнее редактирование: Июль 27, 2011, 07:55:05 pm от Олег »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #14 : Июль 27, 2011, 09:35:46 pm »
kow1976, smile
 Скрин 1 .. ну я не стал тут туманить решение, если .. в начале провести приход, потом задним числом, ранней датой провести расход .. smile
Вложения:
s9082012.jpg

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.09
« Ответ #15 : Август 03, 2011, 07:34:13 pm »
При решении решил использовать два регистра:
 1 ВзаиморасчетыПоДолгам – отгрузки приход(Расх нак) оплата расход(Приход денег)
 2 Аванс - приход оплата (Приход денег), расход(Расх нак).

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

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

 Прошу общественность надругаться над следующим решениям.
Вложения:
kow1971.9.dt
« Последнее редактирование: Август 03, 2011, 08:01:41 pm от Олег »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #16 : Август 03, 2011, 09:29:36 pm »
kow1976, Ну а что .. нормальное решение .. 2 регистра .. Считать аванс отдельно .. тут не запутаешься. Может запросы увеличатся в размерах засчет обращений к регистру Авансов, но это мелочь. Только вот это смущает ..

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


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

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


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

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.09
« Ответ #17 : Август 03, 2011, 10:26:44 pm »
Quote (DoctorRoza)
Почему не получится? Все получится,


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

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


 Расходную в плюс так как по расходной нужны остатки плюсом в отчете. А в поступлении денег в минус так как отрицательных остатков не будет, в связи с записью в аванс.
 Соответственно аванс по поступлении денег в плюс(и всегда положительный), а в расходной в минус (и всегда положительный) так как избыток в плюс по взаиморасчетам.
 Получается замкнутый круг!!!
 Спасибо за коментарий
« Последнее редактирование: Август 03, 2011, 10:30:24 pm от Олег »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #18 : Август 03, 2011, 10:35:03 pm »
Тут главное понимать, что мы должны и что нам должны! Расходная - это что Нам должны, Аванс - это что Мы должны. Движение по авансу - это списание Нашего долга. Все логично!

kow1976

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.09
« Ответ #19 : Август 03, 2011, 10:52:25 pm »
DoctorRoza,
 Совершенно вы правы, но приход по авансу это расход по долгу, а в отчете их надо вставить в один столбец.
Вложения:
s5735699.jpg

tan1c

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.09
« Ответ #20 : Январь 23, 2012, 11:22:20 pm »
Задачка не сложная, но нудная. Сначала хотел сделать у спр. проекты владельцем спр. контрагенты (как договора), но по отчету понял, что связь многие ко многим. И долго колебался, biggrin сделать аванс на пустую ссылку или предопределенным. Ну и полностью смоделировал данные в задаче, чтобы проверить, что у них ошибка в последней строчке отчета. Потратил больше времени чем планировал и решил выложить решение. biggrin
Вложения:
1.9_tan1c.dt

sv_mikh

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Михайлов Сергей Валерианович
Задача 1.09
« Ответ #21 : Март 18, 2012, 11:24:24 am »
Мое решение
Вложения:
sv_mikh_01_09.dt

МитькинБрат

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей Николаевич Костомаров
Задача 1.09
« Ответ #22 : Май 15, 2012, 12:48:48 pm »
Всеобщее мнение задачка легкая. Может я чего-то не догоняю??? Вид отчета взаиморасчеты меня вводит в ступорjavascript://:
 1)допустим для РН Взаиморасчеты Оплата это приход, а отгрузка это расход, тогда почему по "васильку" положительный конечный остаток??? а если наоборот, тогда почему по "рабочему" и "сентябрю" положительный конечный остаток???javascript://

 2) как вообще возможно ввести начальный остаток по проекту??? ведь в условии сказано("при указании проекта в док-е ПриходД надо погасить сумму отгрузку по этому проекту, оставшуюся сумму провести как аванс"), а если нач. остаток это неоплаченная отгрузка, то как воспринимать последнюю стр. отчета взаиморасчетыjavascript://
 3) Как сформировать группировку по партиям в отчете состояние на 31 javascript:// Или один проект может открываться на несколько контрагентов???
« Последнее редактирование: Май 15, 2012, 12:54:09 pm от Алексей Николаевич Костомаров »

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #23 : Май 15, 2012, 02:41:58 pm »
Quote (МитькинБрат)
Вид отчета взаиморасчеты меня вводит в ступорjavascript://:

 Прикольный ступор! Это же сколько нужно кодить, чтобы такой .. заработать? smile

МитькинБрат

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей Николаевич Костомаров
Задача 1.09
« Ответ #24 : Май 15, 2012, 08:41:07 pm »
DoctorRoza, Поприкаловался? А теперь на вопросы ответь, по существу.! Или слабо?! javascript://:) ?

DoctorRoza

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Алексей
Задача 1.09
« Ответ #25 : Май 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:// Или один проект может открываться на несколько контрагентов???


 -Ну а почему нет!? Тут конкретной привязки Контрагент-Проект нет. Группировка по партии .. не совсем понятно, что Вы имеете в виду .. тут партий нет .. есть отгрузка и оплата. Ну а проект - это одно из измерений РН.
« Последнее редактирование: Май 15, 2012, 10:04:38 pm от Алексей »

МитькинБрат

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей Николаевич Костомаров
Задача 1.09
« Ответ #26 : Май 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

RoMeL

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: RoMeL
Задача 1.09
« Ответ #27 : Август 06, 2012, 11:30:39 pm »
Немного извратилса, пошол своим путем, может кто протестирует? wacko
 Схема движений в картинке...
Вложения:
s9753542.png
RoMeL_1.9.dt

ssserg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.09
« Ответ #28 : Август 13, 2012, 12:46:31 pm »
Подскажите пожалуйста как в отчете "Состояние взаиморасчетов" в СКД настроить отображение колонки Аванс в последнем столбце?
Вложения:
task1.9.dt

RoMeL

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: RoMeL
Задача 1.09
« Ответ #29 : Август 13, 2012, 02:05:34 pm »
Quote (ssserg)
Подскажите пожалуйста как в отчете "Состояние взаиморасчетов" в СКД настроить отображение колонки Аванс в последнем столбце?

 Вот так, например.
 P.S. Смотрел только отчет
Вложения:
task1.9_RoMeL.dt
« Последнее редактирование: Август 13, 2012, 02:05:56 pm от RoMeL »

ssserg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.09
« Ответ #30 : Август 14, 2012, 04:23:20 pm »
RoMeL, спасибо.
 Вопрос: что вы поменяли в пользовательских настройках?
 В СКД не могу этого увидеть...

 т.е. добавленный параметр Порядок я вижу, а вот воспроизвести ваш вариант отчета у меня получилось только после того, как я не только
 добавил в НаборДанных1 этот код,
 но и загрузил вариант пользовательских настроек отчета из вашего отчета в СКД.
« Последнее редактирование: Август 14, 2012, 04:43:45 pm от Сергей »

RoMeL

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: RoMeL
Задача 1.09
« Ответ #31 : Август 14, 2012, 05:59:32 pm »
ssserg, смотри макет

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


Вложения:
s0497747.png

ssserg

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.09
« Ответ #32 : Август 14, 2012, 06:09:51 pm »
RoMeL, точно.
 Только у вас ещё и столбец итоги не выводится.

 Разобрался это на вкладке "Дополнтельный настройки" в закладке "Настройки" в СКД нужно установить параметры
 Расположение общих итогов по горизонтали: Нет
 Расположение общих итогов по вертикали: Нет
« Последнее редактирование: Август 15, 2012, 04:35:30 pm от Сергей »

Andy63

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Andrei
Задача 1.09
« Ответ #33 : Сентябрь 14, 2012, 10:29:15 am »
Quote (tan1c)
Мое решение
 Прикрепления: sv_mikh_01_09.dt(157Kb)
 

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

 Вот мое решение, вроде бы точно в соответствии с заданием. На самом деле если выполнить все условия задания то задача не покажется такой простой.
Вложения:
_1.9__ANdy.dt

whisk001

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Дмитрий
Задача 1.09
« Ответ #34 : Ноябрь 30, 2012, 09:16:29 am »
Похоже часть условий к задаче находится во втором отчете "Взаиморасчеты за период".
 ИМХО, во первых, в расходной накладной должна обрабатываться возможность 3-х движений, а не двух:
 Рассмотрим ситуацию с "красным цветком":
 Остаток аванса 1000.
 Делаем расходную накладную по проекту 2 на сумму 6000
 1-е движение - "Отгрузка" 6000
 2-е движение "Оплата" - 1000
 3-е движение "Зачет аванса" - 1000

 Ну и мне кажется, что в постановке задачи ошибка в отчете по контрагенту "Красный октябрь". Имеем остаток 500р. на начало месяца по проекту 3 - значит это не аванс. Отгрузка - 2000р. Оплата 1500. В остатке должна быть 1000.

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Задача 1.09
« Ответ #35 : Апрель 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.

fimanich

  • Пользователь
  • **
  • Сообщений: 49
Задача 1.09
« Ответ #36 : Апрель 18, 2013, 09:14:19 am »
Прикрепляю мое решение. Критика приветствуется.

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

Цитата (whisk001)
Ну и мне кажется, что в постановке задачи ошибка в отчете по контрагенту "Красный октябрь". Имеем остаток 500р. на начало месяца по проекту 3 - значит это не аванс. Отгрузка - 2000р. Оплата 1500. В остатке должна быть 1000.
С этим согласен, респект тебе за внимательность.
Вложения:
fimanich_01_09.dt

TuMyP1985

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Тимур
Задача 1.09
« Ответ #37 : Июнь 12, 2013, 08:40:37 pm »
Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
Вложения:
KTT_1_9.dt

bilateral

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алексей
Задача 1.09
« Ответ #38 : Июнь 13, 2013, 10:31:56 am »
Мое решение. 
Цитата (TuMyP1985)
Да, наверное ошибка в задаче, то же не смог смоделировать последнюю строку отчета в программе.
Тоже не получилось без "1000". При этом второй отчет сам составился так же как в условии (после моделирования первого), и там тоже вылезла та самая 1000.
Вложения:
bilateral_upr_9.dt

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 1.09
« Ответ #39 : Июнь 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

 так оно и есть

 кому интересно, выгрузку прилагаю
« Последнее редактирование: Июнь 21, 2013, 11:06:31 pm от Артур »

artfa

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Артур
Задача 1.09
« Ответ #40 : Июль 28, 2013, 11:24:17 pm »
соптимизировал запросы, доделал отчеты
Вложения:
1.9.dt

Voyager

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Александр
Задача 1.09
« Ответ #41 : Сентябрь 28, 2013, 10:09:32 pm »
Выкладываю свое решение, мб кто-нибудь прокомментирует.

 Решал на двух регистрах. После того, как решил, просмотрел пару решений тех коллег из этой ветки, которые тоже решали на двух регистрах. Мое решение оказалось довольно простым по сравнению, например, с решением kow1976
Вложения:
Voyager_1.9.dt
« Последнее редактирование: Сентябрь 28, 2013, 11:00:18 pm от Александр »

YFred

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: YFred
Задача 1.09
« Ответ #42 : Апрель 17, 2014, 01:51:54 pm »
Посмотрите если не трудно мое решение. Готов обсудить задачу.
Вложения:
YFred_1.9.dt

Demy

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Demy
Задача 1.09
« Ответ #43 : Апрель 27, 2014, 10:29:41 am »
И мое решение посмотрите. Заранее благодарен.

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


Вложения:
Demy_1_9.dt

Demy

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Demy
Задача 1.09
« Ответ #44 : Апрель 27, 2014, 10:36:22 am »
Кстати заметил у себя косяк. В документе "Приход денег" забыл убрать блокировку на проект, ведь надо блокировать весь регистр по контрагенту. Исправил.
Вложения:
Demy_1_9_1.dt

EfKonstanin

  • Новичок
  • *
  • Сообщений: 1
  • ФИО: Константин
Задача 1.09
« Ответ #45 : Сентябрь 27, 2014, 08:54:15 am »
Я вот не пойму, почему практически все решения здесь построены на 1 РН. Ведь если внимательно читать условие, то в нем можно найти строчку "Аванс числится просто за контрагентом без учета проекта", поэтому считаю что корректнее всего решать ее на 2 РН.

Nelli83

  • Новичок
  • *
  • Сообщений: 3
  • ФИО: Nelli83
Re: Задача 1.09
« Ответ #46 : Ноябрь 11, 2014, 07:05:43 pm »
Здравствуйте!

Проверьте пожалуйста, мой вариант решения задачи 1.09. не совсем уверена в установленных  блокировках. Решила на одном РН. Меня правда еще смущает отчет по взаиморасчетам за период (последняя строка), мне кажется ошибка вкралась в задачу

olsput

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

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

Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.09
« Ответ #48 : Декабрь 16, 2014, 12:40:11 pm »
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл

Eufes

  • Пользователь
  • **
  • Сообщений: 33
  • ФИО: Eufes
Re: Задача 1.09
« Ответ #49 : Декабрь 16, 2014, 10:03:00 pm »
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл

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

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

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


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

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

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

Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.09
« Ответ #50 : Январь 12, 2015, 05:13:37 pm »
Честно говоря немного вздохнул с облегчением увидев что есть и простые задачи в этом разделе.
выкладываю свое решение. Кому не трудно прокомментируйте пжл

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

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

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


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

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

Плюс можно, я думаю, обойтись без предопределенного элемента проектов "Авансы", опираясь на знак по регистру остатков.
Спасибо, принял к сведению все замечания. Отдельное спасибо за статью. Правда я не совсем понял причем там движения которые в форме, но в целом почерпнул из нее многое!!!

naumenko_alex

  • Пользователь
  • **
  • Сообщений: 11
  • ФИО: Александр
Re: Задача 1.09
« Ответ #51 : Май 17, 2015, 01:19:49 pm »
Выкладываю своё решение на 2 регистрах и с нормальным отчетом.

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Задача 1.09
« Ответ #52 : Май 20, 2015, 01:02:14 pm »
Решил максимально просто (главное, чтобы не слишком)
Жду критики. Надеюсь, в принципе, все верно.

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

naumenko_alex

  • Пользователь
  • **
  • Сообщений: 11
  • ФИО: Александр
Re: Задача 1.09
« Ответ #53 : Май 20, 2015, 10:22:33 pm »
Решил максимально просто (главное, чтобы не слишком)
Жду критики. Надеюсь, в принципе, все верно.

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

1.Блокировка в док.  не правильно установлена. Блокируется не все движения по контрагенту,а только в значении контрагент,проект.
2.Не корректно работает разработанный алгоритм при отмене проведения документов. В регистре образовываются минусовые остатки.
3. В Отчете состояние взаиморасчетов задолженность по проекта выводиться со знаком минус.
Дальше не смотрел задача не решена.
« Последнее редактирование: Май 20, 2015, 10:25:08 pm от naumenko_alex »

Jones

  • Проверенный
  • ***
  • Сообщений: 199
Re: Задача 1.09
« Ответ #54 : Май 21, 2015, 03:10:26 pm »
Какой Вы суровый. Надеюсь Вы не принимаете экзамены?
Благодарю за критику. Постараюсь все учесть.

Sergey-Vl

  • Новичок
  • *
  • Сообщений: 7
Re: Задача 1.09
« Ответ #55 : Июнь 22, 2015, 03:24:47 pm »
Пожалуйста, покритикуйте решение.

Zeskord

  • Пользователь
  • **
  • Сообщений: 77
  • ФИО: Андрей Назаров
Re: Задача 1.09
« Ответ #56 : Сентябрь 04, 2015, 11:42:10 am »
Пожалуйста, покритикуйте решение.

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

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

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

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


Fat_Mike

  • Пользователь
  • **
  • Сообщений: 12
Re: Задача 1.09
« Ответ #57 : Апрель 01, 2016, 10:55:56 am »
Если не сложно, посмотрите пожалуйста решение.  ;)

LevSeverianin

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Северянин Лев Андреевич
Re: Задача 1.09
« Ответ #58 : Май 03, 2017, 02:34:15 pm »
Для ПриходаДенег сделал две логики проведения, для заполненного и пустого проекта.
Авансы не только погашаются но и зачитываются на проект и только затем списываются, чтобы не вышло ситуации когда в отчете нет проектов - одни авансы.
Весь код прокомментирован, кто сможет найти ошибки буду очень рад.

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.09
« Ответ #59 : Июнь 09, 2017, 02:18:56 pm »
Всем привет. Сделал задачу с 1 одним регистром и все прекрасно списывается. Отчеты идентичны по структуре книжным.

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.09
« Ответ #60 : Июнь 09, 2017, 02:23:40 pm »
Для ПриходаДенег сделал две логики проведения, для заполненного и пустого проекта.
Авансы не только погашаются но и зачитываются на проект и только затем списываются, чтобы не вышло ситуации когда в отчете нет проектов - одни авансы.
Весь код прокомментирован, кто сможет найти ошибки буду очень рад.

Непонятно почему документ "Приход денег" делает приходные движения в регистр. По логике нужно создать регистр Взаиморасчеты(обмен наших услуг на денежные средства контрагентов) в котором отражаются приходные движения по продаже этих услуг(РасходнаяНакладная) и расходные по поступлению денег(ПриходДенег)

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.09
« Ответ #61 : Ноябрь 29, 2017, 04:23:14 pm »
Всем привет. Сделал задачу с 1 одним регистром и все прекрасно списывается. Отчеты идентичны по структуре книжным.
Подкорректировал
« Последнее редактирование: Декабрь 05, 2017, 04:50:08 pm от jonik »

KlintuhovDE

  • Новичок
  • *
  • Сообщений: 7
Re: Задача 1.09
« Ответ #62 : Декабрь 04, 2017, 12:44:27 am »
Решение на двух регистрах мне показалось более элегантно.
Выкладываю свое решение. Почему-то не смог добиться порядка в проектов в отчетах (Проект 1, Проект 2, ... , Аванс), во всяком случае сходу не получилось.

НатальяЮГ

  • Пользователь
  • **
  • Сообщений: 33
Re: Задача 1.09
« Ответ #63 : Май 05, 2018, 05:03:14 pm »
Мой вариант  :)

НатальяЮГ

  • Пользователь
  • **
  • Сообщений: 33
Re: Задача 1.09
« Ответ #64 : Май 05, 2018, 05:32:06 pm »
Не то выгрузила  :(. Замена.

Videon

  • Новичок
  • *
  • Сообщений: 2
Re: Задача 1.09
« Ответ #65 : Июнь 07, 2019, 11:29:58 am »
Выкладываю свое решение, мб кто-нибудь прокомментирует.

 Решал на двух регистрах. После того, как решил, просмотрел пару решений тех коллег из этой ветки, которые тоже решали на двух регистрах. Мое решение оказалось довольно простым по сравнению, например, с решением <b>kow1976</b><hr>Вложения:
<a href="./ucoz_attachments/9/Voyager_1.9.dt">Voyager_1.9.dt</a>
Чёртов гений ;)

Евгений_нвкз

  • Пользователь
  • **
  • Сообщений: 18
Re: Задача 1.09
« Ответ #66 : Сентябрь 28, 2020, 12:47:53 pm »
Всем Привет, выкладываю свое решение, покритикуйте плиз, если есть тут кто)