8.х Как правильно организовывать

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем tunec, 19 июн 2008.

  1. TopicStarter Overlay
    tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    На всяк случай сразу:
    платформа 8.0.11.3
    УТ 10.2

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

    Так вот проблемы не было бы, если бы фирма была бы с нормальным документооборотом. А на деле она разбита на несколько мелких подфирм в рамках холдинга (причем отчитывается о всех операциях только "голова"), и движение товара от поставщика к покупателю рождает собой цепочку реализаций между этими фирмами.

    И в итоге цепочка Реализация->ДокументОприходования в регистре превращается в набор:
    Поступление-Поступление
    Реализация1-Поступление
    Реализация2-Реализация1
    ...
    РеализацияN-РеализацияN-1

    где N<=Nmax, причем в зависимости от номенклатуры она проходит разные пути (разное N шагов)
    Nmax-произвольное число. Обычно в районе 3, но иногда поднимается до 9ти и это не предел... :unsure:

    как лучше организовать получение связки реализация-поступление?
    Цикл с вызовом запроса? Или писать мегазапрос с перебором всех возможных вариантов (что по-моему глупо)? Или еще что?

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

    Резюме: как лучше организовать перебор записей регистра до получения связки РеализацияТоваровУслуг-ПоступлениеТоваровУслуг?

    ДОБАВЛЕНО

    п.с. Сам планирую наверно делать циклом... А потом, переписать проведение реализации и перепровести доки (по крайней мере за этот год).

    П.п.с. пятой точкой чувствую, что будет работать ооочень долго... Главное не перевалить за магические 30 сек...

    п.п.п.с. Кстати, слышал, что есть требования 1С о совместимости кода (типа после подтверждения этого удачная обработка или конфигурация появляется в прайсах 1С). Кто может поделиться насчет этих правил информацией, а то охота писать код правильно и красиво... Да и вообще рекомендации по написанию кода? А то я разгребаю щас конфу, которую редактировало 5-6 человек до меня. так вот сразу видно стиль некоторых из них. И многое мне не нравится....
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Э... Может, я не очень внимательно читал, но я так и не понял - ЗАЧЕМ?

    Напишите в трех словах, что нужно получить. а не то как это сделано.
  3. TopicStarter Overlay
    tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    в двух словах:
    Есть регистр ПартииТоваровнаСкладах. В него добавлен функционал, что для документа поступление товаров и услуг пишется еще и коммерческая себестоимость (расчитывается в форме документа ПоступлениеТоваровУслуг).

    а для реализации пишутся суммы себестоимости применительно к ее объемам (т.е. кускам партии), а не применительно к партии в целом.

    Так вот надо для каждой реализации подобрать коммерческую себестоимость отталкиваясь именно от конкретной партии с конкретной коммерч. себестоисмостью.

    Вот и все.

    А механизмы как устроено описал чтобы не говорили: уууу! там все просто! берешь и левым соединением привязываешь....

    П.С. на самом деле закралась у мну гениально-шальная мысль переписать проведение реализации, чтобы он сразу писал нормальные числа. Потом выбрать выходные подлиннее и перепровести все документы...
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ... Опять решение, вместо задачи...

    Что такое "коммерческая себестоимость" и зачем она? Причем тут партии?

    ЗЫ. В двух словах: нафига менять регистр? сделайте свой и к нему уже левое соединение... Тогда и перепроводить не придется.
  5. TopicStarter Overlay
    tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    коммерческая себестоимость нужна руководству для оценки затрат на обслуживание товара. Т.е. обычная себестоимость считается как стоимость товара/кол-во. А в коммерческой себестоимости к стоимости еще прибавляет все расходы понесенные фирмой и потом уже делится на количество. При этом считается комсебестоимость для варианта товар проходит транзитом и товар проходит через склад.

    В регистре ПартииТоваровУслуг УЖЕ кем-то до меня введено поле. причем хранит они количество и соответствующую СУММУ документа в зависимости от того какой путь проходит товар. Т.е. получение нужной себестоимости ед. товара производится делением значений этих полей (комсб/кол-во).

    Но сейчас реализация пишет в поля кол-во и комсебестоимость не необходимые данные из поступлениятоваровуслуг, а берет из документа оприходования комсебестоимость и умножает их на количество РЕАЛИЗАЦИИ. Т.е. если партия целиком реализована одним документом - то все в прорядке, а если несколькими, то все очень плохо, а если в документе оприходования записана реализация из варианта "очень плохо", то все совсем ужасно.

    Т.е. при вычислении в отчетах я получаю вместо коммерческой себестоимости стоимость еденицы товара в данной реализации, вычисленной по цене документа оприходования. Может быть эта цифра и нужна где-нибудь (ведь ее можно получить деление обычной суммы на кол-во товара), но в тех отчетах что я уже просмотрел она явно "не в кассу". Нужна число комсебестоимость из поступления товаров и услуг.

    Если делать свой регистр, то все равно придется перепроводить доки - не вручную же записи делать. К тому же такая мысль уже посещала, но потом пришла более рациональная мысль: использовать существующие поля регистра партиитоваров... Но тогда встречная не менее разумная мысль остановила - а что если эта цифра все же используется? тогда точно свой регистр. Вот пока изучаю конфу с целью выяснить стоит оно того или нет.

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

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Рекурсивный поиск - это жестко :) Запросы придуманы для чего тогда?

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

    3. А вообще - корячить стандартный регистр не имело смысла. Все решалось через второй регистр, который занимался бы тем же самым или, в конце концов, надо было вести две партии в одном регистре (стандартном)

    Итого: имеющееся решение проще полностью сделать заново, чем пытаться заплатку поставить.
  7. TopicStarter Overlay
    tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    спасиб и на этом... Кстати проще сделать рекурсивный поиск 1 раз (пусть он будет ооочень долгим) с заполнением своего регистра, чем несколько раз переписывать запрос, т.к. когда не хватает его вложенности.

    Для справки:
    Попробывал сделать запросом, на этапе вложенности 10 порядка бросил это дело. причем устроить вложенность на 5 уровней больше ничего не стоит в плане трудозатрат - надо лишь сделать перемещение товара из конца цепочки в начало (со склада с которого продают на склад на который закупают)...

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

    Кстати насколько я понял подгоняли как раз типовое решение, но вот что-то от него мало чего осталось :( Обновление релиза конфы - как страшный сон... Работы на неделю (образно)...

    Ком. себестоимость разделена по желанию руководства и бух, потому как зависит от многих факторов, в том числе и потому как пойдет груз, сколько таможен ему предстоит преодолеть, сколько времени он простоит на складе и сколько наварит на этом манагер... :)

    Руководство предпочитает предполагать о размере затрат, а при их росте выше ранее заложенного перекладывать их на плечи следующим покупателям. И к сожалению покупатели находятся.

    Вот так и нас с вами дурят...
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Э........ Покажите, что вы там ваяли :) там нет такой вложенности :)

    Заплатка на заплатке? Фигово потом будет...

    Тем паче - это отдельный регистр.
  9. tugrik
    Offline

    tugrik Опытный в 1С

    Регистрация:
    18 июн 2008
    Сообщения:
    77
    Симпатии:
    0
    Баллы:
    26
    если я правильно понял, то значит лучше не изменять уже кем-то измененное, а делать свое?

    Добавлено
    А то у меня в конфигурации много чего налеплено. И часто возникает такая ситуация, когда встает выбор: делать новое или править измененное. Не черевато ли это разбуханием базы?
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Ну, в каждом случае стоит смотреть индивидуально.
    Но я бы полностью переделал на свой регистр, т.к. задача явно проще решается + 90% работы уже сделано в типовой.

    2. Это уже теория разработки - не стоит в одной теме все вместе мешать. Вкратце: есть такое понятие, как реинжиниринг - это оно и есть :)

Поделиться этой страницей