Что не следует делать в 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

      ® Клерк.Ру



Ещё раз: как продвигать свои посты на «Клерке»

Если вы видите это сообщение, значит продвижение работает.

Ещё раз: как продвигать свои посты на «Клерке»
10

Комментарии

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

Не всегда на авто, стоящее на учете, надо платить транспортный налог

Регистрация авто в ГИБДД после 15 числа одного месяца и снятие с учета до 15 числа другого месяца дает право не платить транспортный налог.

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

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

Создадут единую цифровую платформу туризма: что она дает

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

1

Вклады 18%, обвал рынка, рост налогов, дешёвый доллар, новые облигации, дивиденды и другие новости. Воскресный инвестдайджест

Есть что по жести? Ещё как есть! Разве что расчленёнки не хватает, так-то рынок акций и облигаций нормально приуныл. Но это пока был не обвал, а коррекция. Обвал точно ожидает нас всех впереди, но это не точно. Зато доллар всё ещё дешёвый, IPO проводятся, появляются новые облигации и дивиденды.

Вклады 18%, обвал рынка, рост налогов, дешёвый доллар, новые облигации, дивиденды и другие новости. Воскресный инвестдайджест
Лучшие спикеры, новый каждый день

С 01 июля новая форма отчета о движении денег по зарубежным счетам

С 01 июля 2024 года изменится форма отчета о движении денег и иных финансовых активов по зарубежным счетам, которые готовят и подают юридические лица и ИП

В чем проблема прогрессивной налоговой системы в России?

Сама по себе прогрессивная налоговая система по своей сути не плохая, это нормально, когда люди, которые зарабатывают больше и платят больше налогов. Но есть 2 Но.

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток

Набираем первый летний поток-2024 на профкурсы. Успейте записаться до 3 июня, чтобы за лето повысить квалификацию и выйти на новый уровень знаний!

Опытом делятся эксперты-практики, без воды

Календарь вебинаров для бухгалтера в июне 2024. Выбирайте и смотрите!

Будьте в курсе последних изменений в законодательстве! Выбирайте из 9 вебинаров интересные именно вам и записывайтесь. Забирайте в закладки календарь вебинаров для бухгалтера, которые пройдут в июне 2024. Подписчикам «Клерк.Премиум» — бесплатный доступ.

Календарь вебинаров для бухгалтера в июне 2024. Выбирайте и смотрите!
7
Инвестиции

Инвестиции в космические объекты пропишут в законе

Госдума приняла в первом чтении законопроект о государственно-частном партнерстве в сфере космической деятельности.

Трудовое право

Чем грозит неявка сотрудника на медосмотр

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

Налог на прибыль

Все гранты на инновационное развитие освободили от налога

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

Предприятия за каждого сотрудника из другого региона получат 300 тысяч рублей

Государство выделит субсидии бизнесу, который работает над крупным проектом и привлекает сотрудников из других регионов. Размер поддержки составит 12 МРОТ.

За что заблокируют ваш счет? Что не нужно делать, чтобы «влететь» на блок

Сейчас в мире бизнеса идет война за темную и светлую сторону.

За что заблокируют ваш счет? Что не нужно делать, чтобы «влететь» на блок
Миникурсы, текстовые и видеоинструкции для бухгалтеров

Налоговые перспективы на 2025 год. Прогрессивная шкала НДФЛ

Какими будут налоговые ставки НДФЛ в 2025 году и можно ли этот налог оптимизировать.

🚚 Грузоперевозка в страну ЕАЭС может облагаться разным НДС

При сделках с контрагентами из стран ЕАЭС взимание косвенных налогов при работах, услугах идет в стране, территория которой признается местом реализации. При грузоперевозках место реализации – страна исполнителя.

МСФО

Внедрение азиатских МСФО на российский рынок

В данном докладе мы рассмотрим перспективы внедрения азиатских Международных стандартов финансовой отчетности (МСФО) на российский рынок.

Внедрение азиатских МСФО на российский рынок
1
Маркетплейсы

Цены на наушники на маркетплейсах оказались завышенными по сговору

ФАС выявила картель продавцов наушников на маркетплейсах. Продавцы общались в чате мессенджера, писали негативные комментарии конкурентам и заказывали наушники «в никуда».

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток обучения

Набираем первый летний поток-2024 на курсы повышения квалификации и переподготовки с максимальными скидками, чтобы вы не ограничивали траты на отпуск и получили полезные знания. Начало обучения 1 июня, присоединяйтесь!

💥 Бодрящие скидки на курсы повышения квалификации и профессиональной переподготовки! Ведем запись на первый летний поток обучения
2
Инвестиции

Итоги 35 месяцев инвестиций. 3,83 млн рублей

1 июня, значит пора защищать детей и подводить итоги мая! Ежемесячно я пишу отчёт о том, что произошло с моими инвестициями. Напоминаю: я начал копить на квартиру в Сочи в июле 2021. 35 месяцев позади. Погнали!

Итоги 35 месяцев инвестиций. 3,83 млн рублей

Горящие глаза, «ген предпринимательства» и Борис Мальцев 

Студенты из акселератора «БизнесКуб» КубГУ, мечтая о собственных стартапах и предпринимательских прорывах, направились на встречу с успешными бизнесменами.

Горящие глаза, 
«ген предпринимательства» и 
Борис Мальцев 
1

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

Бесплатно с УСН

Как в 2024 году уменьшать налоги по УСН и ПСН на страховые взносы: таблица для ИП и ООО

При расчете налога на УСН «доходы» для фиксированных взносов факт уплаты не имеет значение, для взносов за работников — важен факт уплаты. На доходно-расходной упрощенке факт уплаты имеет решающее значение. Для подтверждения этого факта может понадобиться заявление о зачете. Смотрите в нашей таблице, когда и как можно учитывать взносы при УСН и ПСН.

Как в 2024 году уменьшать налоги по УСН и ПСН на страховые взносы: таблица для ИП и ООО