Версия для печати темы (https://pro1c.org.ua/index.php?s=184ce5b62a8e2a2d74deea374320d15a&showtopic=4034)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Проведение по регистрам документа

Автор: meverikxp 05.07.11, 16:14

Здравствуйте, мне нужно провести документ по регистрам аналогично как его проводит Расходная накладная конфигурации УТ 2.3. По регистрам Продажи, ВзаиморасчетыСКонтрагентами, ТоварыВРознице, РасчетыСКонтрагентами, РеализованныеТовары я провел. Но по отчетам взаиморасчеты с контрагентами не выводится сумма приход, хоть сам документ в отчете есть. А также нет себестоимости товара в отчете валовой прыбыли, а сумма реализации есть. Подскажите в какий регистрах еще нужно сделать движения что бы исправить ошибки. Спасибо

ЗЫ. Платформа 8.2

Автор: meverikxp 06.07.11, 7:59

Цитата(meverikxp @ 05.07.11, 17:14) *
Здравствуйте, мне нужно провести документ по регистрам аналогично как его проводит Расходная накладная конфигурации УТ 2.3. По регистрам Продажи, ВзаиморасчетыСКонтрагентами, ТоварыВРознице, РасчетыСКонтрагентами, РеализованныеТовары я провел. Но по отчетам взаиморасчеты с контрагентами не выводится сумма приход, хоть сам документ в отчете есть. А также нет себестоимости товара в отчете валовой прыбыли, а сумма реализации есть. Подскажите в какий регистрах еще нужно сделать движения что бы исправить ошибки. Спасибо

ЗЫ. Платформа 8.2


Отвечу сам на свой вопрос, нужно еще записать в регистры накоплений ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов и ПродажиСебестоимость,

Но возник другой вопрос, как узнать себестоимость товара по методу ФИФО. Если есть приходы по разным ценам. То по какой цене нужно списать?

Автор: logist 06.07.11, 8:05

Цитата(meverikxp @ 06.07.11, 8:59) http://pro1c.org.ua/index.php?act=findpost&pid=26858

Автор: meverikxp 06.07.11, 8:55

Цитата(logist @ 06.07.11, 9:05) http://pro1c.org.ua/index.php?act=findpost&pid=26859

а программно в 1С?

Автор: logist 06.07.11, 9:12

Цитата(meverikxp @ 06.07.11, 9:55) *
а программно в 1С?

FIFO (First In, First Out) — метод бухгалтерского учёта ТМЦ, в соответствии с которым ТМЦ, поставленные на учёт первыми выбывают с учёта тоже первыми.

Ну вот что тут непонятного? Берете не нулевые остатки партий в нужном кол-ве, которые пришли самыми ранними и считаете по ним.

Автор: meverikxp 06.07.11, 9:40

Цитата(logist @ 06.07.11, 10:12) *
FIFO (First In, First Out) — метод бухгалтерского учёта ТМЦ, в соответствии с которым ТМЦ, поставленные на учёт первыми выбывают с учёта тоже первыми.

Ну вот что тут непонятного? Берете не нулевые остатки партий в нужном кол-ве, которые пришли самыми ранними и считаете по ним.

Что такое ФИФО и ЛИФО я знаю, Как реализовать это в УТ?

Автор: logist 06.07.11, 9:53

Цитата(meverikxp @ 06.07.11, 10:40) *
Как реализовать это в УТ?

А разве там этого не реализовано?
Мне помнится пол года назад в одном из Ваших вопросов звучало что Вы используете УТ с установленным методом ФИФО.

Автор: meverikxp 06.07.11, 10:20

Цитата(logist @ 06.07.11, 10:53) *
А разве там этого не реализовано?
Мне помнится пол года назад в одном из Ваших вопросов звучало что Вы используете УТ с установленным методом ФИФО.

Когда писал пост ожидал подобного ответа. Дело в том что я добавил новый документ и нужно в нем списывать товар

Автор: logist 06.07.11, 10:23

Цитата(meverikxp @ 06.07.11, 11:20) *
Дело в том что я добавил новый документ и нужно в нем списывать товар

А посмотреть как это делается в других документах?

Автор: meverikxp 06.07.11, 10:46

Цитата(logist @ 06.07.11, 11:23) *
А посмотреть как это делается в других документах?

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

Автор: pablo 06.07.11, 11:04

Цитата
Подскажите по теории как это сделать или где прочитать.

1. Выбираете остатки, отсортированные по дате партии.
2. Перебираем остатки, сравнивая количество единиц по партии с количеством для списания.

Пример. У вас на складе есть 4 яблока. 2 пришло 1 января по цене 20 грн/шт, а 2 - 2 января по 21грн/шт. Сколько будут стоить 3 яблока для списания со склада?
По ФИФО - 61 грн, по ЛИФО - 62грн

Автор: meverikxp 06.07.11, 11:32

Цитата(pablo @ 06.07.11, 12:04) *
1. Выбираете остатки, отсортированные по дате партии.
2. Перебираем остатки, сравнивая количество единиц по партии с количеством для списания.

Пример. У вас на складе есть 4 яблока. 2 пришло 1 января по цене 20 грн/шт, а 2 - 2 января по 21грн/шт. Сколько будут стоить 3 яблока для списания со склада?
По ФИФО - 61 грн, по ЛИФО - 62грн


Нашел регистр накопления ПартииТоваровНаСкладе в нем есть информация по остаткам и цена партий, если следовать вашему примеру, то с регистра я получаю две записи: 1) остаток 2 яблока, остаток сумма 40грн, 2)Остаток 2 яблока Сума остаток 42 грн. Теперь как мне в выборке отобрать первых два и еще одно яблоко с другой партии?

Автор: logist 06.07.11, 11:39

Цитата(meverikxp @ 06.07.11, 12:32) *
Теперь как мне в выборке отобрать первых два и еще одно яблоко с другой партии?

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

Автор: pablo 06.07.11, 11:48

Цитата
Теперь как мне в выборке отобрать первых два и еще одно яблоко с другой партии?

Смотря что вы потом с яблоками делать будете? Если списывать, то нужно делать движения по этому регистру на уменьшение остатка. Чтобы я Вам не писал весь код за Вас, напишите свой вариант кода, а тут его уже поправим.

Автор: meverikxp 06.07.11, 12:06

Цитата(logist @ 06.07.11, 12:39) *
Посмотреть как это делается в других документах. Политика списания (ФИФО) уже привязана к механизму из настроек учета, используйте "общие" процедуры.


Нашел стандартную функцию
Функция ИтогПлановаяСебестоимость(ДокументОбъект) Экспорт

    Перем СуммаПлановойСебестоимости;

    Если Не ДокументОбъект.ИспользоватьПлановуюСебестоимость Тогда
        // Не выполняем никаких действий, если плановая себестоимость в документе не учитывается
        Возврат Неопределено;
    КонецЕсли;

    ИтогПлановаяСебестоимость = 0;

    // Суммируем значения плановой себестоимости по каждой строке табличной части
    Для каждого СтрокаТабличнойЧасти ИЗ ДокументОбъект.Товары Цикл

        ОбработкаТабличныхЧастей.ПолучитьСуммуИОтклонениеОтПлановойСебестоимостиТаб
Части(СтрокаТабличнойЧасти, ДокументОбъект, СуммаПлановойСебестоимости);

        // Если хотя бы в одной строке плановая себестоимость будет неопределенной,
        // то считаем, что и итоговая плановая себестоимость по документу
        // также будет неопределенной.
        Если СуммаПлановойСебестоимости = Неопределено Тогда
            Продолжить;
        КонецЕсли;

        ИтогПлановаяСебестоимость = ИтогПлановаяСебестоимость + СуммаПлановойСебестоимости;

    КонецЦикла;

    Возврат ИтогПлановаяСебестоимость;

КонецФункции

теперь как ее использовать

Автор: pablo 06.07.11, 12:09

Что-то Вы совсем не ФИФО нашли.

Автор: meverikxp 06.07.11, 12:11

Цитата(pablo @ 06.07.11, 13:09) *
Что-то Вы совсем не ФИФО нашли.

Да уже смотрю что что-то не то

Автор: meverikxp 06.07.11, 13:17

Так что жду Ваших предложений. Спасибо

Автор: mister-x 06.07.11, 13:24

Цитата
Так что жду Ваших предложений. Спасибо
подивитись як це показано в методичці Введение в конфигурирование в системе "1С:Предприятие 8" Решение оперативных задач.

Автор: meverikxp 06.07.11, 14:05

Цитата(mister-x @ 06.07.11, 14:24) *
подивитись як це показано в методичці Введение в конфигурирование в системе "1С:Предприятие 8" Решение оперативных задач.

Этих методичек есть несколько какую именно мне сейчас нужно?

Автор: Vofka 06.07.11, 14:44

Ой не хотим книги читать... Ну как так, вам сказали что посмотреть, а вы спрашиваете какую из 3? Все просмотреть впадло?

mister-x, а вы в самом деле, сами взяли бы методички, выбрали что надо и выложили, чё напрягаете человека, ай-ай-ай?

Автор: mister-x 06.07.11, 15:26

Цитата
Этих методичек есть несколько какую именно мне сейчас нужно?
так вказав же
Цитата
mister-x, а вы в самом деле, сами взяли бы методички, выбрали что надо и выложили, чё напрягаете человека, ай-ай-ай?
smile.gif

Автор: meverikxp 06.07.11, 16:31

Цитата(mister-x @ 06.07.11, 16:26) http://pro1c.org.ua/index.php?act=findpost&pid=26939
Ой не хотим книги читать... Ну как так, вам сказали что посмотреть, а вы спрашиваете какую из 3? Все просмотреть впадло?

mister-x, а вы в самом деле, сами взяли бы методички, выбрали что надо и выложили, чё напрягаете человека, ай-ай-ай?


Да у меня уже мозг вскипел. Если узнаешь одно, то надо узнать еще больше. Когда это кончится? 64000000.gif

Автор: logist 06.07.11, 16:40

Цитата(meverikxp @ 06.07.11, 17:31) http://pro1c.org.ua/index.php?act=findpost&pid=26943
может это и просто, но не знаю я. sad.gif

Ну так учитесь чему-то самостоятельно, а не бегайте на форум по каждому чиху.

Цитата(meverikxp @ 06.07.11, 17:31) *
Когда это кончится? 64000000.gif

Никогда. Получение знаний это бесконечный процесс.

Автор: meverikxp 06.07.11, 17:03

Цитата(logist @ 06.07.11, 17:40) *
Так понятно:
Если Выборка.КолОст = NULL Тогда Остаток =0;
Иначе Остаток = Выборка.КолОст;


Ну в принципе я так и думал. Спасибо за терпение

Автор: mister-x 06.07.11, 18:40

Цитата
Да у меня уже мозг вскипел. Если узнаешь одно, то надо узнать еще больше. Когда это кончится?
а тут все і одразу не вийде - тільки поступово

Автор: meverikxp 07.07.11, 13:01

вот навалял такой код:

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


Ну что-то не так работает, как нужно, в регистре начинают появляться минусы, подскажите что я там не так сделал. Спасибо

Автор: meverikxp 08.07.11, 9:52

Немножко разобрался, дело в том что Выборка партии не обнуляется, нужно делать выборку запроса, дважды, но как это сделать?

Автор: logist 08.07.11, 10:36

Цитата(meverikxp @ 08.07.11, 10:52) *
нужно делать выборку запроса, дважды, но как это сделать?

Зачем.... Учитесь работать с полученной таблицей.

Автор: meverikxp 08.07.11, 14:00

Цитата(logist @ 08.07.11, 11:36) *
Зачем.... Учитесь работать с полученной таблицей.

Ну вроде получилось, но не уверен что всегда будет списывать по ФИФО, подскажите как явно указать группировку выбранных остатков. Спасибо

Автор: Vofka 08.07.11, 14:08

Блин! Тема имеет название одно, а вопросы вы в ней задаёте все, которые не лень. Мусорка получилась. Закрываю.

Автор: logist 08.07.11, 14:13

Цитата(meverikxp @ 08.07.11, 15:00) *
Ну вроде получилось, но не уверен что всегда будет списывать по ФИФО, подскажите как явно указать группировку выбранных остатков. Спасибо

Правильнее ее получать из Учетной политики.
Если уж сильно хочется - Перечисление.СпособыОценки (как-то так)

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua