Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
1
1C 8.x

Не проводить документ по регистру с определённым типом операции

18.11.2016, 08:35. Показов 1815. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
День добрый. Есть документ "Приходный кассовый ордер". При создании, можно выбрать 3 вида операции: "реализация", "возврат", "сотрудники". Документ делает запись по 3 регистрам :"реализация услуг", "сотрудники", "возвращаемые средства". Вопрос: можно ли сделать, что если при создании "Приходный кассовый ордер" и выборе вида операции "возврат", документ не делал запись в регистр "реализация услуг" ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2016, 08:35
Ответы с готовыми решениями:

Не проводить документ
Есть следующая проблема. При проведении документа вызываются некоторые функции из общего модуля....

Удалить строки, содержащие аккаунт только с определённым типом операции
Доброго времени суток! есть таблица в которую записаны операции по аккаунту, примерно так это...

Выбрать что выводить с определённым типом из БД с <a href...
в общем суть темы такова:есть файл с выводом:shop.php.В БД выляются записи с категориями fight и...

Можно ли проводить математические операции с переменными типа char?
Доброго времени суток! Просматриваю код из книги Лафоре. Сам код длинный, но вопрос простой...

7
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
18.11.2016, 08:39 2
Briolin, в обработке проведения проверять, не?
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
18.11.2016, 09:01  [ТС] 3
GreenkA, виды операции имеет тип перечисления. В обработке проведения смотрел, там явно нигде не указывается

Добавлено через 21 минуту
GreenkA, если пишу так:
1C
1
2
3
Если ВидыОперации = Перечисления.ВидыОпераций ТОГДА
            Отказ = Истина;
        КонецЕсли;
Приводит к тому что документ вообще не записывается. Что не удивительно, т.к. я не указал по какому именно регистру нужно не проводить его. Вопрос: как указать?
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
18.11.2016, 09:05 4
Briolin, найти в коде движения по этому регистру и там написать проверку.
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
18.11.2016, 09:20  [ТС] 5
GreenkA, сделал так :
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
НаборЗаписей = Движения.возврат;
        НаборЗаписей.мТаблицаДвижений = НаборЗаписей.ВыгрузитьКолонки();
        
        Для Каждого СтрокаТЧ Из БазаВозвратов Цикл
        
            Движение = НаборЗаписей.мТаблицаДвижений.Добавить();
            ЗаполнитьЗначенияСвойств(Движение, СтрокаТЧ);
            Движение.Период       = СтруктураДок.Дата;
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Организация = СтруктураДок.Организация;
 
Если ВидыОперации = Перечисления.ВидыОпераций.Возврат ТОГДА
            Отказ = Истина;
        КонецЕсли;
КонецЦикла;
Документ вообще не проводиться
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
18.11.2016, 09:33 6
Briolin, при чем тут Отказ? Перед созданием движений в нужный регистр делайте проверку на вид операции.
0
59 / 64 / 11
Регистрация: 13.11.2014
Сообщений: 940
18.11.2016, 20:26  [ТС] 7
GreenkA, Вот так :
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Если ВидыОперации = Перечисления.ВидыОпераций.Возврат ТОГДА
        Движения.РеализацияУслуг.Записывать = Ложь;
    КонецЕсли;
НаборЗаписей = Движения.РеализацияУслуг;
        НаборЗаписей.мТаблицаДвижений = НаборЗаписей.ВыгрузитьКолонки();
        
        Для Каждого СтрокаТЧ Из Базы Цикл
        
            Движение = НаборЗаписей.мТаблицаДвижений.Добавить();
            ЗаполнитьЗначенияСвойств(Движение, СтрокаТЧ);
            Движение.Период     = СтруктураДок.Дата;
            Движение.ВидДвижения    = ВидДвиженияНакопления.Расход;
            Движение.Организация    = СтруктураДок.Организация;
 
КонецЦикла;
Документ проводиться, но и проводиться по регистру "реализация услуг", а не должен...

Добавлено через 1 час 54 минуты
Вот что еще нашёл: "Записывать выбранные". Это означает, что при выходе из обработки проведения или при вызове метода Движения.Записать() будут записаны только те наборы записей, у которых свойство "Записывать" равно Истина ( Движения.ТоварныеЗапасы.Записывать = Истина).
У меня же стоит "Записывать модифицированные". Может из-за этого вот так не работает?:
1C
1
2
3
Если ВидыОперации = Перечисления.ВидыОпераций.Возврат ТОГДА
        Движения.РеализацияУслуг.Записывать = Ложь;
    КонецЕсли;
Добавлено через 2 часа 28 минут
Попробовал так;
1C
1
Движения.РеализацияУслуг.Записывать(Ложь);
тоже не помогло, всё равно запись идёт в регистр...

Добавлено через 6 часов 21 минуту
Тема актуальна! Может из-за того что свойствах стоит "Записывать модифицированные", не срабатывает это аписывать(Ложь); ???
Вообще возможно ли записывать в выборочные регистры и не записывать в регистры по условию?
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
18.11.2016, 20:55 8
Briolin, покажите весь код обработки проведения документа.
0
18.11.2016, 20:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2016, 20:55
Помогаю со студенческими работами здесь

Сохранить Документ Word С Определённым Именем
Подскажите как сохранить документ Word созданный на основе шаблона, не открывая Word, с...

составить задачу, позволяющую создать одномерныемассивы и проводить с ними необходимые операции
Добрый вечер. Необходима помощь в задании))) Задание: составить задачу, позволяющую создать...

Невозможно проводить любые операции с некоторыми файлами на флешке после зависания ПК
Проблема такая. Комп довольно старый, система ХП. Во время просмотра файлов на флешке через Тотал...

Операции с типом double
double h=0.005; double T=0.2; double tN=0.3; int Nt=(tN-T)/h; cout&lt;&lt;&quot;Nt &quot;&lt;&lt;Nt&lt;&lt;endl; На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru