Ганиев Станислав | Архитектор | ГК Невада

«Git для 1С-ника и другие технологии групповой разработки»

В этом докладе хочу показать, что такое версионирование кода и зачем это нужно? Рассмотрим плюсы и минусы разных подходов к организации групповой разработки. Конечно же, поговорим про хранилище, Git, расширения и EDT, разберёмся, что лучше использовать и для каких задач применять? - Зачем версионировать код? - Процессы групповой разработки с использованием хранилища, Git и EDT. Немного про расширения. - Обзор и сравнение инструментария для групповой разработчики. Что для чего будем применять? - Место code-review в рабочем цикле. - Плюсы и минусы использования Git в мире 1С. - Области разработки, в которых Git незаменим. - История одного проекта, который поможет вам насладиться работой с Git.

Подписки на события

1. MarinaChist 21.12.16 10:51 Сейчас в теме
Уважаемые форумчате, подскажите, пожалуйста, начинающему программисту 1С. Ситуация такова:
Есть справочник. При изменении или добавлении в него записей необходимо создавать записи в определенном регистре с полями: 1) действие (Создан, Изменен), 2) датой создания (изменения) и 3) ссылкой на объект. Чтоб не изменять и не снимать справочник с поддержки, я создала две подписки на события ПередЗаписью и ПриЗаписи.
В первой подписки (ПередЗаписью) я анализирую запись на Новая или не новая (переменной1 присваиваю ЛОЖЬ или ИСТИНА) и если запись не новая, то анализирую изменение всех реквизитов. Если не менялись, то переменной2 присваиваю Ложь, если менялись Истина.
А во второй подписке (При записи) мне надо в зависимости от этих переменных создать записи в регистре.
Вопрос состоит в том КАК ПЕРЕДАТЬ ЗНАЧЕНИЯ ЭТИХ ПЕРЕМЕННЫХ ВО ВТОРУЮ ПОДПИСКУ. Буду очень признательна за советы.
Найденные решения
6. spacecraft 21.12.16 11:08 Сейчас в теме
(1) в первой подписке:
Источник.ДополнительныеСвойства.Вставить("п1", Истина);

во второй подписке анализировать наличие:
п1 = Неопределено;
Если Источник.ДополнительныеСвойства.Свойство("п1", п1) Тогда
    // работаем с п1.
КонецЕсли;
Ганс; le0nid; ipoloskov; +3 Ответить
Остальные ответы
Сортировка: Древо
2. nedopro 21.12.16 10:54 Сейчас в теме
(1)делать проверку и запись в одной подписке.
В чем заключается конечный результат задачи? Похоже на версионирование объектов.
3. MarinaChist 21.12.16 11:01 Сейчас в теме
(2) В одной подписке не получается.
В подписке ПередЗаписью еще нет ссылки на новый объект, т.к. объект еще не записан,
а во второй подписке ПриЗаписи, невозможно проанализировать новый или не новый, т.к. объект уже записан и нельзя проанализировать новые и старые значения, т.к. уже записаны новые значения, а старые затерты
5. pvvpvv 10 21.12.16 11:07 Сейчас в теме
(3)
В подписке ПередЗаписью еще нет ссылки на новый объект


Но сам объект у вас есть.
7. Xershi 375 21.12.16 11:09 Сейчас в теме
(3) не совсем верно!

Для не записанного объекта можно получить ссылку, думаю гугл вам быстро поможет с кодом.
Ну а имея ссылку, думаю проблем у вас дальше не будет, чем ерунду кодить))
8. spacecraft 21.12.16 11:15 Сейчас в теме
(7) а потом кто-то добавит еще одну подписку ПередЗаписью, где будет проверяться нужность вообще записи элемента справочника. И реализуют Отказ.
Подписка проверки может запуститься позже. И в итоге имеем движение по регистру с убитой ссылкой.
Главное же потом долго будут искать, почему там ссылки битые.

Хотя нет. Этот случай не отработает. транзакция откатит.
Но делать движения в ПередЗаписью считаю не верным.
ipoloskov; +1 Ответить
9. ipoloskov 63 21.12.16 11:22 Сейчас в теме
(8)
И реализуют Отказ

по Отказу откатится вся транзакция, в том числе и создание записей регистра.
или ПередЗаписью это еще не транзакция...
10. spacecraft 21.12.16 11:27 Сейчас в теме
(9) все верно. Откатится.
Вне транзакции это ПередЗаписью в модуле формы.
В модуле Объекта уже в транзакции, но до записи объекта.
11. smartem 21.12.16 11:49 Сейчас в теме
(3)
а во второй подписке ПриЗаписи, невозможно проанализировать новый или не новый, т.к. объект уже записан и нельзя


В модуле:

Источник.ЭтоНовый() - В зависимости от результата можно проанализировать Новый или не новый и решить вопрос в одном событии (ПриЗаписи)
12. MarinaChist 21.12.16 12:07 Сейчас в теме
(11) В подписки на событии ПриЗаписи Источник.ЭтоНовый() даже для нового элемента уже Ложь
13. smartem 21.12.16 12:11 Сейчас в теме
(12)Пардон.... сам ошибся... не туда посмотрел :(
4. alex-l19041 11 21.12.16 11:07 Сейчас в теме
(1)
ЕРЕДАТЬ ЗНАЧЕНИЯ ЭТИХ ПЕРЕМЕННЫХ
- как вариант, можно передать через параметры сеанса, или можно через константы...
6. spacecraft 21.12.16 11:08 Сейчас в теме
(1) в первой подписке:
Источник.ДополнительныеСвойства.Вставить("п1", Истина);

во второй подписке анализировать наличие:
п1 = Неопределено;
Если Источник.ДополнительныеСвойства.Свойство("п1", п1) Тогда
    // работаем с п1.
КонецЕсли;
Ганс; le0nid; ipoloskov; +3 Ответить
14. MarinaChist 21.12.16 13:10 Сейчас в теме
(6) Огромное спасибо!!! Ваше предложение - это решение моей проблемы! Единственное во второй подписке я явно сравниваю
Если Источник.ДополнительныеСвойства.НовыйДок = Истина тогда
      // 
КонецЕсли;

Если Источник.ДополнительныеСвойства.ПризнакИзмененияДанных = Истина тогда
      // 
КонецЕсли;
15. tailer2 21.12.16 13:23 Сейчас в теме
надо же
иногда достаточно просто прочитать справку
но миссия невыполнима, пока есть и-старт
Оставьте свое сообщение
Все разделы

Вакансии


Программист 1С
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день