Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проведение документов в 1С Упрваление небольшой фирмой.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Камарали
1С:Підприємство 8.3 (8.3.7.1970)
Конфигурация управление небольшой фирмой.

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

Тут стоит концептуальная задача понять механизмом проводок с 1С 8.3. в документах.

Событие формирование документа 1С Перемещения запасов. → Потом запросами сбрасываем все реквизиты документа в объект ДополнительныеСвойства (Это такой себе мега объект) который будет содержать временные таблицы.
Объекты ДополнительныеСвойства
ДляПроведения
ТаблицыДляДвижений
ТаблицаДоходыИРасходы
ТаблицаЗапасы
ТаблицаЗапасыКПоступлениюНаСклады
ТаблицаЗапасыКРасходуСоСкладов
ТаблицаЗапасыНаСкладах
ТаблицаСуммовойУчетВРознице
ТаблицаУправленческий
УчетнаяПолитика
ИспользоватьПартии
ИспользоватьТехоперации
ИспользоватьХарактеристики

Далее начинаются сложности
По сути он опрашивает документ и создает сложные запросы с одной стороны регистры с другой временные таблицы. Упаковывает в одну структура и сравнивает между собой. И как тут добавить условие, по складу совсем не понятно. Буду благодарен за помощь. Мне не понятно.
logist
Цитата(Камарали @ 02.11.16, 0:55) необходимо зарегистрироваться для просмотра ссылки
И как тут добавить условие, по складу совсем не понятно.

Тут - никак, если надо исключить какие-то движения это надо делать в самих запросах которые их формируют, в модуле менеджера.
Вообще, не понятен смысл этих действий.
Vofka
Цитата(Камарали @ 01.11.16, 23:55) необходимо зарегистрироваться для просмотра ссылки
Стоит задача локальная обнулить в периферической базе проводки по основному складу.

Почему бы не сделать просто списание?

Цитата(Камарали @ 01.11.16, 23:55) необходимо зарегистрироваться для просмотра ссылки
периферический

Мощно звучит smile.gif . Как сферический.

Камарали
Камарали @ 01.11.16, 23:55 необходимо зарегистрироваться для просмотра ссылки ,
Вот не нашел как редактировать свой вопрос, поэтому пишу коммент.
Глобально разобрался.
Панове механизм проведения следующий: глобально 1с формирует гигантское хранилище называется дополнительные свойства.
В это хранилище сбрасываються метаданные документа:
Для каждого документа разные название можете посмотреть конфигурация → отчет по конфигурации → формируется файлик конечно сложный и неудобный там можете посмотреть
все метаданные. И движения,!!!! в прочем этого не нашел кто подскажет благодарен.
Далее формируються структуры для проведения
И таблицы где из нашего документа вытягиваються различные разрезы.
Например

        СформироватьТаблицаЗапасыКРасходуСоСкладов(ДокументСсылкаПеремещениеЗапасов, СтруктураДополнительныеСвойства);
    СформироватьТаблицаЗапасыКПоступлениюНаСклады(ДокументСсылкаПеремещениеЗапасов, СтруктураДополнительныеСвойства);
    СформироватьТаблицаСуммовойУчетВРознице(ДокументСсылкаПеремещениеЗапасов, СтруктураДополнительныеСвойства);
    СформироватьТаблицаДоходыИРасходы(ДокументСсылкаПеремещениеЗапасов, СтруктураДополнительныеСвойства);
    СформироватьТаблицаУправленческий(ДокументСсылкаПеремещениеЗапасов, СтруктураДополнительныеСвойства);


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

     ИЛИ ТаблицаЗапасыКРасходуСоСкладов.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;


Вообщем тут во ремя записи регистра мы удаляем что надо и не надо например я применил такой код:

      КС=ТаблицаЗапасыНаСкладах.Количество();
    Для н=1 По КС Цикл
        ТС=КС-н;
        ТекСтрока=ТаблицаЗапасыНаСкладах[ТС];
        Если ТекСтрока.ВидДвижения = ВидДвиженияНакопления.Расход Тогда
            ТаблицаЗапасыНаСкладах.Удалить(ТС)
        КонецЕсли;    
    КонецЦикла;


Что не позволяет запись регистра с значением расход.
Т.е в перефирии ничего не списывается.

Это гораздо элегантнее чем следовать советам и сначала записывать записи а потом их удалять.

Кстати буду благодарен за код удаления записи регистра. icon_beer17.gif

logist @ 02.11.16, 0:43 необходимо зарегистрироваться для просмотра ссылки ,
Все работает, при записи в регистры.


 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 
logist
Цитата(Камарали @ 07.11.16, 17:36) необходимо зарегистрироваться для просмотра ссылки
Это гораздо элегантнее чем следовать советам и сначала записывать записи а потом их удалять.

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