Этап 1. Первая учебная неделя
Введение - резюме повторяется в каждом посте.
@Mira.1c это блог о том, как я меняю свою профессию из бухгалтера в программисты 1с.
В данный момент я работаю бухгалтером на расчету заработной платы в IT компании на декретной ставке, это значит что в начале 2024 года мне придется искать новую работу. Мой опыт работы в бухучете составляет 8 лет на всех участках учета.
Мне 34 года и почему я выбрала именно эту профессию? Мое первое образование - "Программное обеспечение вычислительной техники и автоматизированных систем", второе "Экономист", а также я сертифицированный главный бухгалтер от ИПБ России (сообщество бухгалтеров). Ответ прост - я решила объединить то, что у меня хорошо получается.
В каком формате я вижу процесс описания обучения?
Я сделала таблицу с названиями всех уроков и отмечаю в ней прогресс обучения.
Она в открытом доступе и ее всегда можно посмотреть и даже откомментировать (Например, какие уроки нужно проработать более углубленно).
Так как я выбрала метод параллельного обучения, для лучшего усвоения информации, то предполагаю, что за 21 день я точно не управлюсь, даже с таким плотным графиком.
С чем я познакомилась:
1) Подсистемы (и их настройка) - это объект для формирования удобного интерфейса для пользователя.
Что меня поставило в тупик: Каждая подсистема имеет "картинку" и ее отображение тоже можно настроить, а вот нигде не сказано как убрать картинки у подсистем, чтобы они не мозолили глаза. То есть отображение можно отключить уже в самом клиенте (а вот чтобы их вообще не было в конфигурации - я такого не нашла).
2) Справочники - это тоже объекты конфигурации, которые хранят "однотипные объекты", то есть имеющие одинаковую структуру и носящий списочный характер.
Элементы справочника: это данные которые там нужны для формирования базы данных (Клиенты, Номенклатура, Договора и т.д.).
А вот по типу данных в 1С Предприятии: всего там 4 типа данных:
Строка, Число, Дата, Булево* (*Boolean меня немного покоробило, но потом я поняла что по другому это и не перевести на русский видимо).
Что еще запомнилось. ИНН контрагента советуют делать по типу Строка, а не Число.
3) Перечисления - это значения, которые пользователь не сможет изменить или поменять, а может только использовать. То есть их создает исключительно разработчик и только он на них может повлиять.
4) Документы - это отражение хозяйственных операций организации (то есть счета, акты, упд и так далее).
Показали Табличные части, которые предназначены для хранения наборов однородной информации, принадлежащих объекту (справочнику, документу, отчету или обработке).
И вот тут мне открылось что-то новое, оказывается когда ты делаешь конфигурацию с нуля и формируешь документ (например, заказ поставщику) то при выборе номенклатуры, ты вообще заполняешь все ручками. Чтобы программа посчитала сумму, или подтянула цену закупки надо написать программный код :)
И тут все дают как бы пощупать ручками:
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ЦенаПоступления = ЦенаИзНоменклатурыНаСервере(СтрокаТабличнойЧасти.Номенклатура);
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.ЦенаПоступления * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры
&НаСервере
Функция ЦенаИзНоменклатурыНаСервере(Номенклатура)
Возврат Номенклатура.ЦенаЗакупки;
КонецФункции
И это выглядит примерно так. Код на русском, так что тот кто не знает английского тут не пропадет, а вот кто изучал другие языки - будет привыкать.
Что мы имеем на это этапе:
Научили обращаться к объектам конфигурации, то есть например к справочнику Номенклатура и вытаскивать из нее нужное значение.
Как это работает? Воспринялось это так:
Создали Процедуру "ТоварыНоменклатураПриИзменении", в которую передали Элемент (это как я поняла реквизит формы в которой будут изменения).
Ввели переменную СтрокаТабличнойЧасти и при помощи метода - ТекущиеДанные, записали в переменную всю строчку "Товары", при этом эти "Элементы" - это путь к данным Товары, а не реквизит.
Функция была вызвала на сервере, чтобы достать из объекта конфигурации Номенклатура - ЦенуЗакупки
И передать ее в ячейку ЦенаПоступления (на скриншоте Цена), чтобы при выборе номенклатуры подтягивалась данная стоимость.
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.ЦенаПоступления * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПоступленияПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.ЦенаПоступления * СтрокаТабличнойЧасти.Количество;
КонецПроцедуры
Этот код нужен чтобы при изменении в клиенте Количества или Цены, считалась сумма товара.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
СуммаДокумента = Товары.Итог("Сумма");
КонецПроцедуры
А вот чтобы посчитать сумму документа код писался уже в другом модуле, а именно в модуле объекта.
Итог.
В общем пока мне нравится. Сильных отличий между бесплатными, платными курсами пока не вижу, где-то дают больше информации и теории, где-то поменьше. На платных курсах проверяют работы, на бесплатных я все делаю сама и меня никто не контролирует, поэтому сейчас у меня 4 базы на которых я учусь.
Книга 10 ступеней читается легче и она не так оперирует терминологией и "водой". Там коротко и по делу. А вот книга Радченко это отдельный вид написания учебника)) Все как в универе - если можно так выразиться.
Что скажете о таком формате ведения блога? Пока у меня вопросов не возникло по тем модулям что есть, но уже есть вопросы на будущие.
Вопрос на будущие 1.
Есть раздел Общие модули, в котором можно прописать все эти манипуляции с расчетом сумм для всех документов и вызывать процедуру в той форме, где она нужна (прочла об этом в книге и интернете).
Процедура РассчетСуммы(СтрокаТабличнойЧасти) ЭкспортСтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
КонецПроцедуры
И вот вопрос как передавать разные значения в один параметр "Цена" (Если у меня разные значения для Цена закупки, цена реализации, скидки и так далее), чтобы правильно рассчитать итоговые суммы.
Передавать массивы? В каждом модуле вводить дополнительные переменные?
Ответ на этот вопрос я опубликую - когда его найду и реализую :)
Спасибо всем, кто меня поддерживает, кому просто интересно, тем кто просто задает вопросы и особенно тем, кто дает советы.
И да я понимаю, что это самые азы и дальше будет веселее :)