Что не следует делать в 1С:Конфигураторе и в 1С:Предприятии 7.7.

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

1. Вступительное слово

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

С интеграцией с другими программами я также мало знакома - практически не было практики. В основном я знаю интеграцию работы 1С с 1С, когда нужно было данные из одной конфигурации перенести в другую. 1С с Lotus Notes на нашем предприятии была интеграция, когда нужно было две базы в разных программах поддерживать в актуальном состоянии. Делалось это через коммутатор Lotus Notes. Рассказать более подробно также не могу.SQL я только видела на компьютере у заказчика, созданием новой базы и подключением занимались специальные люди. Я только смотрела через плечо. Поэтому здесь речь будет вестись только чисто по программированию внутри 1С.

2. Что не следует делать в 1С:Конфигурации

2.1. ТекущаяЗапись()

Выдержки из помощника:

  • Синтаксис:
  • ТекущаяЗапись()
  • Назначение:
  • Возвращает значение текущей записи журнала расчетов.
  • Параметры: Нет.

Эта процедура вовсе не хочет работать в Модуле документа. Ее можно использовать вне контекста захвата Журнала расчета (вне модуля проведения документа, делающего записи в журнал расчетов), то есть в Модуле формы (в модулях документа документов, принадлежащих бухгалтерскому учету и оперативному учету, я не проверяла).

2.2. ВвестиПерерасчет() / ВвестиПерерасчетНаОсновании()

Выдержки из Помощника:

  • Синтаксис:
  • ВвестиПерерасчет()
  • Назначение:
  • Вводит перерасчет текущей записи журнала расчетов.
  • Возвращаемое значение:
  • 1 - если операция успешно выполнена, иљ 0 - в противном случае.

У фирмы 1С в типовой комплексной конфигурации я нашла серьезный "ляп", который пришлось переделывать. Вот следующий код, который записан в модуле документа (в модуле проведения) "Приказ по отпуску". Работает он неправильно:

ЖрнЗарплата.ВыбратьЗаписиПоОбЪекту(Сотрудник,НТП,ЖрнЗарплата.КонецТекущегоПериода());

Пока ЖрнЗарплата.ПолучитьЗапись()=1љ Цикл

Если (ЖрнЗарплата.Перерасчет=0) и

ЖрнЗарплата.Видрасч=ВидРасчета.ПрофВзносы) Тогда

љљљљљљљљљљљ ЖрнЗарплата.ВвестиПерерасчетНаОсновании(Докум)

љљљљљљљљљљљ КонецЕсли;

КонецЦикла;

В итоге не на все записи, на которые было нужно, вводились перерасчеты. Одна или две записи обязательно оказывались пропущенными. При запуске той же процедуры в отладчике "сЪеденные" записи оказывались в журнале. Узнать, в чем здесь ошибка, было практически невозможно, так как отладчик отрабатывал свое, программа свое.

Дело оказалось в следующем:

При создании выборки ("ВыбратьЗаписиПоОбЪекту") в обЪекте "ЖрнЗарплата" типа "ЖурналРасчетов.Зарплата" помещалось определенное количество записей. При вызове процедуры "ВвестиПерерасчетНаОсновании" позиционирование в выборке смещалось вперед, в результате чего некоторые записи в выборке просто-напросто пропускались. Отчего можно сделать вывод, что нельзя совмещать процедуры перебора записей в выборке и внесение изменения в обЪект учета, по которому делалась эта выборка.

Путь решения:

//процедура составления списка записей, по котрым нужно вводить перерасчет

СписокЗаписей=СоздатьОбЪект("СписокЗначений");

ЖрнЗарплата.ВыбратьЗаписиПоОбЪекту(Сотрудник,НТП,ЖрнЗарплата.КонецТекущегоПериода());

Пока ЖрнЗарплата.ПолучитьЗапись()=1љ Цикл

Если (ЖрнЗарплата.Перерасчет=0) и

ЖрнЗарплата.Видрасч=ВидРасчета.ПрофВзносы) Тогда

љљљљљљљљљљљ СписокЗаписей.ДобавитьЗначение(ЖрнЗарплата.ТекущаяЗапись());

КонецЕсли;

КонецЦикла;

//процедура ввода перерасчетов

Для м=1 По СписокЗаписей.РазмерСписка() Цикл

љљљљљљљљљљљ ЖрнЗарплата.НайтиЗапись(СписокЗаписей.ПолучитьЗначение(м));

љљљљљљљљљљљ ЖрнЗарплата.ВвестиПерерасчетНаОсновании(Докум);

КонецЦикла;

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

2.3. УдалитьЗапись()

  • Выдержки из помощника:
  • Синтаксис:
  • УдалитьЗапись()
  • Назначение:
  • Удалить запись журнала расчетов.
  • Возвращаемое значение:
  • 1 - если операция успешно выполнена, 0 - в противном случае
  • Замечание:
  • Метод работает только для переменных, созданных функцией СоздатьОбЪект.
  • Неравильным будет следующий код:

    ЖрнЗарплата=СоздатьОбЪект("ЖурналРасчетов.Зарплата");

    ЖрнЗарплата.ВыбратьЗаписиПоДокументу(Докум);

    Пока ЖрнЗарплата.ПолучитьЗапись()=1 Цикл

    љљљљљљљљљљљ ЖрнЗарплата.УдалитьЗапись();

    КонецЦикла;

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

    Решение в следующем коде:

    ЖрнЗарплата=СоздатьОбЪект("ЖурналРасчетов.Зарплата");

    СписокЗаписей=СоздатьОбЪект("СписокЗначений");

    //процедура создания списка удаляемых записей

    ЖрнЗарплата.ВыбратьЗаписиПоДокументу(Докум);

    Пока ЖрнЗарплата.ПолучитьЗапись()=1 Цикл

    љљљљљљљљљљљ СписокЗаписей.ДобавитьЗначение(ЖрнЗарплата.ТекущаяЗапись());

    КонецЦикла;

    //процедура удаления записей

    Для м=1 По СписокЗаписей.РазмерСписка() Цикл

    љљљљљљљљљљљ ЖрнЗарплата.НайтиЗапись(СписокЗаписей.ПолучитьЗначение(м));

    љљљљљљљљљљљ ЖрнЗарплата.УдалитьЗапись();

    КонецЦикла;

    2.4. ВвестиРасчет() / ЗаписатьРасчет() / ВвестиРасчетНаОсновании() / ЗаписатьРасчетНаОсновании()

    • Выдержки из помощника:
    • Синтаксис:
    • ВвестиРасчет(,,,,)
    • Назначение:
    • Ввести запись в журнал расчетов.
    • Параметры:
    • - обЪект расчета - элемент справочника, заданного при конфигурировании журнала расчетов.
    • - вид вводимого расчета - ссылка на агрегатный обЪект ВидРасчета.
    • - дата начала действия вводимого расчета. По умолчанию - дата начала текущего периода журнала расчетов.
    • - дата окончания действия вводимого расчета. По умолчанию - дата окончания текущего периода журнала расчетов.
    • - результат расчета. По умолчанию - ноль.
    • Возвращаемое значение:
    • 1 - если операция успешно выполнена, иљ 0 - в противном случае.
    • Если вы их запишете в Модуле расчета, то глубоко об этом пожалеете. При отмене "рассчитанности" записи в журнале исчезают все записи, которые были введены расчетом, в модуле которого записаны эти(а) процедуры(а).

      Поэтому совет: используйте эту процедуру в Модуле документа.

      3. Что не следует делать в 1С:Предприятии

      3.1. Непосредственное удаление (Сервис -> Параметры -> Закладка "Общие")

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

      3.2. Число цифр года (Сервис -> Параметры -> Закладка "Общие") (Совет)

      Некоторые пользователи любят выставлять число цифр года в "2", чтобы вместо четырех цифр набирать всего две (быстрее). Я советую ставить число цифр года "4", чтобы не искать документ, записанный на 2000 год (00 год) в документах за 1900 год (тоже 00 год). Иногда 1С понимает набранный год, как 2000, но бывает, что запись года получается в 1900 (обычно за это отвечает "Год начала рабочего столетия" в (Сервис -> Параметры -> Закладка "Общие")). Почему сбивается рабочее столетие, я не знаю. Но все-таки лучше в таких случаях подстраховаться.

      Дина Рачевская
      www.vesnushka.vov.ru
      Dina_Rachevskaya@tut.by
      ICQ UIN: 85247474

      ® Клерк.Ру



Комментарии

6
  • Хранитель_врат
    Зачем такие статьи писать. Либо вещи общеизвестные для людей работающих с 1С, а для тех кто начинает работать совершенно ненужная
  • Alex33
    Опять подруга за своё ! Толи делать больше нечего... Хотя, может быть, человек учится писать статьи, но зачем брать такую тему как 1С.
    В общем, чувствую, что цикл статей "Заметки ламера" будет продолжаться.
  • Хранитель_врат
    А чего вы хотите от сайта клерков? Для этих самых клерков опусы Дины "откровения гуру". Так что кривиться не надо, вроде есть и профессиональные форумы (в смысле тех, кто пишут конфигурации), не так ли? Хотя, признаюсь, в прошлый раз тоже "негодовал".

Российские бренды на 38% увеличили число собственных интернет-магазинов

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

Обвиняемых в неуплате взносов на травматизм не могут ограничивать в контактах с омбудсменами

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

Оплата услуг перевозки груза за границей не облагается налогом на прибыль в РФ

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

Курсы повышения
квалификации

18
Официальное удостоверение с занесением в госреестр Рособрнадзора
Банкротство

Как определить момент, когда руководитель обязан обратиться в суд с заявлением о банкротстве организации

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

Бесплатно с НДФЛ

Как начислять НДФЛ с материальной выгоды в 2024 году. Мини-курс

Как облагается НДФЛ полученная материальная выгода и когда она образуется, рассмотрим в сегодняшнем мини-курсе.

Как начислять НДФЛ с материальной выгоды в 2024 году. Мини-курс
Бесплатно с Отчетность

Формы и сроки сдачи отчетности за полугодие 2024 года

Чтобы ничего не потерять и вовремя отчитаться за полугодие, собрали всю полезную информацию в одной таблице.

Формы и сроки сдачи отчетности за полугодие 2024 года
3
Опытом делятся эксперты-практики, без воды
НДФЛ

Компенсация дистанционным работникам не облагается НДФЛ и взносами

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

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

КС РФ признал умерщвление бездомных животных «исключительной мерой».

🎂 Суперакция в честь Дня рождения школы «Клерка»! Онлайн-курсы по 3 290 рублей

Какой же праздник без подарков? 22 июля мы празднуем наш первый юбилей — 5 лет школе «Клерка»! В честь этого устраиваем масштабную акцию на онлайн-курсы. До 19 июля включительно вы можете купить курсы по учету на маркетплейсах, финансовому анализу, ВЭД, работе на УСН и зарплате всего за 3 290 рублей. Успейте воспользоваться выгодным предложением!

🎂 Суперакция в честь Дня рождения школы «Клерка»! Онлайн-курсы по 3 290 рублей
Проверки

ФНС подключается к поиску нелегальных пищевых предприятий и общепита

Чтобы Роспотребнадзор мог оперативно определить новые компании из сферы общепита и следить за их деятельностью, он будет получать информацию от ФНС и сведения о движении денежных средств.

🥳 Онлайн-курсы по 3 290 рублей в честь Дня рождения школы «Клерка»!

22 июля нашей школе пять лет! Мы хотим разделить этот праздник с вами, поэтому устраиваем суперакцию на онлайн-курсы. До 19 июля включительно вы можете купить курсы по учету на маркетплейсах, финансовому анализу, ВЭД, работе на УСН и зарплате всего за 3 290 рублей.

Ипотека

Банки ужесточат условия для нарушителей правила «одна льготная ипотека в одни руки»

Заемщикам, которые собираются второй раз воспользоваться льготной программой по ипотеке, банки повышают ставки.

УСН

При УСН с НДС 5% и 7% можно брать к вычету НДС с авансов

Если упрощенец выберет ставку НДС 5% или 7%, надо начислять НДС с продаж, но нельзя брать его к вычету с покупок. А вот по авансам от покупателей надо начислять НДС, а потом брать его к вычету.

УСН

За продажу авто, которое использовалось в бизнесе, ИП должен платить налог по УСН

При УСН доходом от реализации признается выручка от реализации товаров как собственного производства, так и ранее приобретенных. Автомобиль – не исключение.

Карьерный рост для бухгалтеров: как повысить квалификацию и больше зарабатывать

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

Карьерный рост для бухгалтеров: как повысить квалификацию и больше зарабатывать
Отпускные

Отпуск с понедельника: когда выплачивать отпускные

Отпуск с понедельника: когда выплачивать отпускные Разберем, как правильно посчитать срок выплаты отпускных и не попасть на штраф.

Отпуск с понедельника: когда выплачивать отпускные

Останемся без зарубежных покупок?

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

4
АУСН

При АУСН разрешат торговать на маркетплейсах

Сейчас бизнес с агентскими договорами не может применять АУСН. Эту норму изменят.

Обесценение и изменение справедливой стоимости ОС иногда влияет на имущественный налог

Учет основных средств в бухучет идет по ФСБУ 6/2020, МСФО 36 «Обесценение активов» и МСФО 13 «Оценка справедливой стоимости».

Интересные материалы

УСН

Производители сладких напитков могут быть упрощенцами

В общем случае производители подакцизных товаров не вправе применять УСН. Но есть исключения.